【问题标题】:Getting values from Log4Net configuration从 Log4Net 配置中获取值
【发布时间】:2011-02-22 16:57:34
【问题描述】:

我通过扩展 AppenderSkeleton 类实现了一个自定义 log4net 附加程序。它就像任何人都可以要求的那样简单并且完美地工作。

我的问题是我必须硬编码一些值,我想将它们从我的代码中删除到附加程序的配置中。由于 log4net 知道它是如何配置的,我认为应该有一种方法可以向 log4net 询问它的配置。

我的 appender 可能看起来像这样:

<appender name="MyLogAppender" type="xxx.yyy.zzz.MyLogAppender">
      <MyProperty1>property</MyProperty1>
      <MyProperty2>property</MyProperty2>
      <MyProperty3>property</MyProperty3>
</appender>

如何获取 MyProperty1-3 的值以便我可以在 Appender 中使用它?

提前致谢 罗兰德

【问题讨论】:

    标签: log4net appender


    【解决方案1】:

    这取决于类型,但对于简单类型,您可以执行以下操作:

    像这样定义一个属性:

    // the value you assign to the field will be the default value for the property
    private TimeSpan flushInterval = new TimeSpan(0, 5, 0);
    
    public TimeSpan FlushInterval
    {
         get { return this.flushInterval; }
         set { this.flushInterval = value; }
    }
    

    这个你可以配置如下:

    <appender name="MyLogAppender" type="xxx.yyy.zzz.MyLogAppender">
        <flushInterval value="02:45:10" />
    </appender>
    

    这当然适用于 string、bool、int 和 TimeSpan。

    注意:如果您的设置需要激活某些逻辑(例如创建计时器),那么您可以在 ActivateOptions 方法中实现此功能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-27
      • 2023-03-14
      • 1970-01-01
      • 2014-09-23
      • 2011-03-08
      • 2018-12-20
      • 2021-09-15
      相关资源
      最近更新 更多