首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >log4net logz.io appender配置文件将参数传递给listenerUrl和令牌标记

log4net logz.io appender配置文件将参数传递给listenerUrl和令牌标记
EN

Stack Overflow用户
提问于 2019-11-26 14:50:06
回答 1查看 230关注 0票数 1

要设置在多个环境上运行并使用logz.io的项目,我需要根据构建定义设置不同的令牌和listenerUrl值。项目设置了log4net.config文件,其思想是使用log4net全局上下文属性传递值,就像我对布局模式标记所做的一样。不幸的是,log4net保留了这些属性名(占位符),并且没有用全局上下文中的值替换它们。

我的问题是如何动态地设置这些标记?

我试过的东西是:

配置中的

  1. 属性.

var rootAppender = LogManager.GetRepository(Assembly.GetEntryAssembly()).GetAppenders().OfType<LogzioAppender>();

  1. 获取根附录和设置值

创建新的hierarchy.Root.AddAppender(logzioAppender);对象并将其添加到

配置看起来很像logz.io文档中的默认配置。

代码语言:javascript
复制
<log4net>
  <appender name="LogzioAppender" type="Logzio.DotNet.Log4net.LogzioAppender, Logzio.DotNet.Log4net">
    <token value="%p{token}" />
    <type>log4net</type>
    <listenerUrl value="%p{listenerhost}:8071" />
    <bufferSize>100</bufferSize>
    <bufferTimeout>00:00:05</bufferTimeout>
    <retriesMaxAttempts>3</retriesMaxAttempts>
    <retriesInterval>00:00:02</retriesInterval>
    <debug>false</debug>

  </appender>

  <root>
    <level value="INFO" />
    <appender-ref ref="LogzioAppender" />
  </root>
</log4net>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-27 11:03:53

由于某种原因,我尝试过的第二个选项在第一次尝试中没有起作用。这段代码完成了任务并重写了log4net配置文件:

代码语言:javascript
复制
var logzioAppender = LogManager.GetRepository(Assembly.GetEntryAssembly()).GetAppenders().OfType<LogzioAppender>();
logzioAppender.FirstOrDefault().AddListenerUrl("https://listener_url:8071");
logzioAppender.FirstOrDefault().AddToken("key_value");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59053529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档