log4net / c#-基于级别的不同布局

时间:2020-03-06 14:39:45  来源:igfitidea点击:

使用log4net时,是否可以根据日志消息的级别进行不同的布局?说,如果是致命错误,我想查看所有可能的信息,包括类名,方法名,行号等。但是对于正常的调试和警告,我只想查看消息(希望可以增加性能)。

我在CWinForms中使用log4net。我的要求是,当发生致命错误时,将以前的所有512条消息记录到文件中,并且我只想查看致命错误的类名,方法名,行号等,对于所有其他级别,仅显示一条消息。

解决方案

我们可以为每个"级别"使用不同的Appender,并使它们相同,但用于图案布局。

这篇文章对log4net配置文件有很好的解释:

log4net配置

注意添加程序中的布局元素。它们定义了输出错误和选择的任何信息的方式。

我认为我们正在寻找LevelRangeFilter和两个添加组件的组合。一个用于致命级别的添加程序/过滤器组合(致命是最小值和最大值),以及一个用于其他所有内容的添加器/过滤器组合(其中ERROR或者INFO是最大值,这取决于我们是否要包括调试目的的错误)

此处的示例:log4net配置中包含什么?破解,优化,观察?