可以为 Logger 分配级别 . 级别是log4net.Core.Level类的实例 . 以下级别按优先级递增的顺序定义:ALL DEBUG INFO WARN ERROR FATAL OFF
DEBUG似乎具有最低优先级,ERROR更高 .
题
- 如果我设置Min和Max示例DEBUG和ERROR,则打印出DEBUG,INFO,WARN和ERROR . 不使用最小和最大过滤器 . 如果我指定ERROR(Logging level = ERROR)它是否包括DEBUG,INFO和WARN
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="ERROR"/>
<param name="LevelMax" value="ERROR"/>
</filter>
而不是最小和最大过滤器 . 是否可以配置级别并包括其下的所有其他级别以进行日志记录 .
示例 - 将级别设置为错误,它将包括DEBUG,INFO,WARN和ERROR . 这可能与log4net一起使用吗?
根据其中一条评论发布log4net配置:
<?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>
7 回答
这可能有助于理解 Logger 可以分配级别的记录级别 . 级别是log4net.Core.Level类的实例 . 以严重性增加的顺序定义以下级别 - 日志级别 .
每个设置级别记录的级别数:
对于大多数应用程序,您希望设置最低级别但不是最高级别 .
例如,在调试代码时,将最低级别设置为DEBUG,并在 生产环境 中将其设置为WARN .
除了DEBUG消息之外,DEBUG将显示所有消息,INFO等等 .
通常使用INFO或WARN . 这取决于公司政策 .
正如其他人所指出的那样,通常最好指定一个最低日志记录级别来记录该级别以及任何其他更严重的级别 . 看起来你只是在考虑向后记录级别 .
但是,如果您希望对记录单个级别进行更细粒度的控制,则可以使用以下语法告诉log4net仅记录一个或多个特定级别:
或者通过向筛选器添加“拒绝”节点来排除特定的日志记录级别 .
您可以将多个过滤器堆叠在一起以指定多个级别 . 例如,如果您只想要WARN和FATAL级别 . 如果您想要的级别是连续的,那么LevelRangeFilter更合适 .
参考文件:log4net.Filter.LevelMatchFilter
如果其他答案没有给你足够的信息,希望这将帮助你从log4net获得你想要的东西 .
它的真实官方文件(Apache log4net™ Manual - Introduction)表明有以下等级......
全部
DEBUG
INFO
警告
错误
致命
关闭
...但奇怪的是当我查看程序集log4net.dll,v1.2.15.0密封类log4net.Core.Level我看到以下级别已定义...
我已经将TRACE与PostSharp OnBoundaryEntry和OnBoundaryExit结合使用了很长时间 . 我想知道为什么这些其他级别不在文档中 . 此外,所有这些级别的真正优先事项是什么?
以下是一些有关所有log4net级别优先级的代码:
enter image description here
试试这个,它对我有用
这会记录3种类型的错误 - 错误,信息和警告