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

log4net/c#-基于级别的不同布局,c#,log4net,C#,Log4net,在使用log4net时,是否有任何方法可以根据日志消息的级别进行不同的布局?比方说,如果这是一个致命错误,我希望看到所有可能的信息-类名、方法名、行号等。但是对于正常、调试和警告,我只希望看到消息(我希望,这可以提高性能) 我在C#WinForms中使用log4net。我的要求是在发生致命错误时将之前的所有512条消息记录到一个文件中,我只想看到致命错误的类名、方法名、行号等,其他所有级别的都是一条消息。您可以为每个“级别”使用不同的附加器除了模式布局,它们是相同的。这篇文章很好地解释了log4

在使用log4net时,是否有任何方法可以根据日志消息的级别进行不同的布局?比方说,如果这是一个致命错误,我希望看到所有可能的信息-类名、方法名、行号等。但是对于正常、调试和警告,我只希望看到消息(我希望,这可以提高性能)


我在C#WinForms中使用log4net。我的要求是在发生致命错误时将之前的所有512条消息记录到一个文件中,我只想看到致命错误的类名、方法名、行号等,其他所有级别的都是一条消息。

您可以为每个“级别”使用不同的附加器除了模式布局,它们是相同的。

这篇文章很好地解释了log4net配置文件:


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

我认为您正在寻找LevelRangeFilter和两个附加器的组合。一个用于致命级别的appender/filter组合(致命是最小值和最大值)和一个用于所有其他内容的appender/filter组合(错误或信息是最大值,取决于您是否希望出于调试目的包含错误)

这里的示例:

要找的答案是