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

时间:2008-09-24 13:46:27

标签: c# log4net

使用log4net时,有没有办法根据日志消息的级别设置不同的布局?比方说,如果是致命错误,我希望看到所有类型的信息 - 类名,方法名,行号等。但是对于正常,调试和警告,我只想看到消息(我希望,这可以提高表现。)

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

3 个答案:

答案 0 :(得分:2)

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

log4net Configuration

注意appender中的布局元素。它们定义了如何输出错误和您选择的任何信息的模式。

答案 1 :(得分:1)

你可以为每个“Level”使用不同的Appender,并使它们相同但是用于图案布局。

答案 2 :(得分:1)

我认为你正在寻找LevelRangeFilter和两个appender组合。一个用于FATAL级别的appender / filter组合(致命的是最小值和最大值)和一个用于覆盖其他的appender / filter组合(ERROR或INFO是最大值,具体取决于你是否想要包含用于调试目的的错误)

此处示例:What do you have in your log4net config? Hacks, optimizations, observations?