log4net的层次和日志记录级别 [英] log4net hierarchy and logging levels

查看:243
本文介绍了log4net的层次和日志记录级别的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

本网站说:



<块引用>

记录器可以被分配的水平。级别是log4net.Core.Level类的实例。以下级别的顺序为定义的提高优先级




  • 所有的

  • DEBUG

  • 信息

  • WARN

  • 错误

  • FATAL

  • 关闭




DEBUG似乎有最低优先级和ERROR较高。



问题




  • 如果我设置最小值和最大值,例如调试和错误它打印全部的寄托DEBUG,INFO,WARN和ERROR。不使用最小和最大的过滤器。如果我指定ERROR(日志记录级别=错误),它将包括DEBUG,INFO和放大器; WARN



<预类=郎咸平的XML prettyprint-覆盖> <滤波器类型=log4net.Filter。 LevelRangeFilter>
< PARAM NAME =LevelMinVALUE =ERROR/>
< PARAM NAME =LevelMaxVALUE =ERROR/>
< /滤光器>



而不是最小和最大的过滤器。是否有可能配置水平,包括下面的所有其他级别的日志记录



示例 - 设置级别的错误,将包括DEBUG,INFO,WARN和ERROR。这可能与log4net的?



道歉格式问题。许多在此先感谢您的建议



发布的基础上的说法中有一种log4net的配置:



<预类=郎-xml prettyprint-覆盖> <?XML版本=1.0编码=UTF-8>?;
<结构>
< configSections>
<节名称=log4net的TYPE =log4net.Config.Log4NetConfigurationSectionHandler,log4net的/>
< / configSections>
< log4net的调试=真正的>
<追加程序名称=LogFileAppenderTYPE =log4net.Appender.FileAppender>
<布局类型=log4net.Layout.XMLLayout/> - >
< PARAM NAME =文件VALUE =TestLog.log/>
< PARAM NAME =AppendToFileVALUE =FALSE/>
<布局类型=log4net.Layout.PatternLayout>
<头类型=log4net.Util.PatternStringVALUE =[START LOG]%换行符/>
<脚型=log4net.Util.PatternStringVALUE =[结束LOG]%换行符/>
< conversionPattern值=%D [%T]%-5p - %M%N/>
< /布局>
<滤波器类型=log4net.Filter.LevelRangeFilter>
< PARAM NAME =LevelMinVALUE =DEBUG/>
< PARAM NAME =LevelMaxVALUE =ERROR/>
< /滤光器>
< /附加器>
<根和GT;
<电平值=ALL/>
<附加目的地-REF REF =LogFileAppender/>
< /根>
<记录器名称=log4NetExample>
<! - <附加目的地-REF REF =B/> - >
<电平值=ALL/>
<附加目的地-REF REF =LogFileAppender/>
< /记录器>
< / log4net的>




解决方案

对于大多数应用程序,你想设置的最低水平,但不是最高水平。



例如,调试代码时设置的最低级别为DEBUG,并在生产中设置为WARN。


This site says

Loggers may be assigned levels. Levels are instances of the log4net.Core.Level class. The following levels are defined in order of increasing priority:

  • ALL
  • DEBUG
  • INFO
  • WARN
  • ERROR
  • FATAL
  • OFF

DEBUG seems to have lowest priority and ERROR is higher.

Question

  • If I set Min and Max example DEBUG and ERROR it prints everthing DEBUG, INFO, WARN and ERROR. Without use of min and max filter. If I specify ERROR (Logging level = ERROR) Will it include DEBUG, INFO & WARN

 <filter type="log4net.Filter.LevelRangeFilter">
     <param name="LevelMin" value="ERROR"/>
     <param name="LevelMax" value="ERROR"/>
 </filter>

Instead of min and max filter. Is it possible to configure a level and include all other levels below it for logging.

Example - Set level as Error it will include DEBUG, INFO, WARN and ERROR. Is this possible with log4net?

Apologies for formatting issues. Many thanks in advance for your suggestions.

Posting log4net config based on one of comments:

     <?xml version="1.0" encoding="utf-8" ?>
     <configuration>
        <configSections>
            <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
        </configSections >
        <log4net debug="true">
  <appender name="LogFileAppender" type="log4net.Appender.FileAppender">
        <layout type="log4net.Layout.XMLLayout" /> -->
        <param name="File" value="TestLog.log" />
        <param name="AppendToFile" value="false" />
        <layout type="log4net.Layout.PatternLayout">
            <header type="log4net.Util.PatternString" value="[START LOG] %newline" />
            <footer type="log4net.Util.PatternString" value="[END LOG] %newline" />
            <conversionPattern value="%d [%t] %-5p - %m%n" />
        </layout>
        <filter type="log4net.Filter.LevelRangeFilter">
            <param name="LevelMin" value="DEBUG"/>
            <param name="LevelMax" value="ERROR"/>
        </filter>
    </appender>
<root>
        <level value="ALL" />
        <appender-ref ref="LogFileAppender" />
    </root>
    <logger name="log4NetExample">
        <!-- <appender-ref ref="B" /> -->
        <level value="ALL" />
        <appender-ref ref="LogFileAppender" />
    </logger>
</log4net>

解决方案

For most applications you would like to set a minimum level but not a maximum level.

For example, when debugging your code set the minimum level to DEBUG, and in production set it to WARN.

这篇关于log4net的层次和日志记录级别的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆