【问题标题】:Get Appenders from Log4Net LogManager从 Log4Net LogManager 获取 Appender
【发布时间】:2018-12-20 10:31:55
【问题描述】:

我正在尝试通过 log4net 获取带有日志的文件的名称,但我无法获取我的 Appenders。这是我的配置:

<log4net>
    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="name.log"/>
      <appendToFile value="false"/>
      <maximumFileSize value="10MB"/>
      <maxSizeRollBackups value="0"/>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date %level %thread %logger - %message%newline"/>
      </layout>
    </appender>
    <appender name="ColoredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
      <mapping>
        <level value="ERROR"/>
        <foreColor value="Red, HighIntensity"/>
      </mapping>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date %level %thread %logger - %message%newline"/>
      </layout>
    </appender>
    <root>
      <level value="DEBUG"/>
      <appender-ref ref="RollingFileAppender"/>
      <appender-ref ref="ColoredConsoleAppender"/>
    </root>
</log4net>

这是获取 appender 数量的代码:

((Hierarchy)LogManager.GetRepository()).GetAppenders().Length.ToString();

但它给了我 0。 日志记录工作完美,因此 config 适用于日志记录。你有什么想法如何从没有附加程序的配置中获取附加程序或文件名"name.log"?谢谢。

【问题讨论】:

    标签: c# .net logging config log4net


    【解决方案1】:

    您是否有可能在调用 Configure 之前获取附加程序?

    使用您提供的配置:

    int count;
    count = LogManager.GetRepository().GetAppenders().Length; // 0
    XmlConfigurator.Configure();
    count = LogManager.GetRepository().GetAppenders().Length; // 2
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-21
      • 1970-01-01
      • 1970-01-01
      • 2011-10-09
      • 2017-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多