【问题标题】:log4net How do I set the log level for a specific assembly?log4net 如何设置特定程序集的日志级别?
【发布时间】:2013-03-28 22:11:39
【问题描述】:

我正在使用使用 log4net 的第三方程序集。有问题的程序集过于频繁地记录到“信息”日志级别。这会给我的应用程序带来很多我不想要的噪音。

有没有一种方法可以为特定程序集配置不同的日志级别?

【问题讨论】:

    标签: .net log4net log4net-configuration


    【解决方案1】:

    是的,有点。 有一种方法可以根据配置文件中的记录器名称设置值。为方便起见,我省略了文件的其余部分,但在您的文件中,您应该有一个如下所示的根部分。

    现在我只是为另一个记录器添加额外的部分。

    例如:

    <root>        
        <level value="ERROR" />    
        <appender-ref ref="RollingFile" />
    </root>    
    <logger name="ServiceLib">
        <level value="DEBUG"/>  
    </logger>
    

    如果您通过传递类型来创建记录器,则此方法有效。然后,该名称基于类的命名空间。 像这样:

    private static readonly ILog log = LogManager.GetLogger(typeof(ServiceLib.MyWebService));
    

    希望这对你有用。

    【讨论】:

      【解决方案2】:

      来自手册:

      http://logging.apache.org/log4net/release/manual/configuration.html

      您不能为程序集执行此操作,但可以为该程序集中的包执行此操作。因此,如果该程序集包都以 Com.Foo 开头,那么接下来的配置将执行您想要的操作并将日志记录限制为 WARN 级别及更高级别,因此不会出现 INFO 日志记录。

      <log4net>
          <!-- A1 is set to be a ConsoleAppender -->
          <appender name="A1" type="log4net.Appender.ConsoleAppender">
      
              <!-- A1 uses PatternLayout -->
              <layout type="log4net.Layout.PatternLayout">
                  <!-- Print the date in ISO 8601 format -->
                  <conversionPattern value="%date [%thread] %-5level %logger %ndc - %message%newline" />
              </layout>
          </appender>
      
          <!-- Set root logger level to DEBUG and its only appender to A1 -->
          <root>
              <level value="DEBUG" />
              <appender-ref ref="A1" />
          </root>
      
          <!-- Print only messages of level WARN or above in the package Com.Foo -->
          <logger name="Com.Foo">
              <level value="WARN" />
          </logger>
      </log4net>
      

      如果您使用的 Lib 不遵循此约定(基于类型名称进行记录),您必须在日志文件中检查 Lib 用于记录的字符串是什么,并更改该字符串的“Com.Foo”。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-08-23
        • 1970-01-01
        • 1970-01-01
        • 2020-05-11
        • 2018-07-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多