Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
使用 log4net 时,有什么方法可以根据日志消息的级别进行不同的布局?比如说,如果是致命错误,我想查看所有可能的信息——类名、方法名、行号等。但是对于正常、调试和警告,我只想看到消息(我希望,这可以提高性能)。
我在 C# WinForms 中使用 log4net。我的要求是在发生致命错误时将所有先前的 512 条消息记录到文件中,并且我只想查看致命错误的类名、方法名、行号等,对于所有其他级别,只是一条消息。
这篇文章对 log4net 配置文件有很好的解释:
log4net 配置
注意 appenders 中的布局元素。它们定义了如何输出错误和您选择的任何信息的模式。
我认为您正在寻找 LevelRangeFilter 和两个附加器组合。一个用于 FATAL 级别的附加器/过滤器组合(致命是最小值和最大值)和一个用于其他任何东西的附加器/过滤器组合(错误或信息是最大值,具体取决于您是否想包含用于调试目的的错误)
此处的示例:您的 log4net 配置中有什么?黑客、优化、观察?
您可以为每个“关卡”使用不同的 Appender,并让它们相同,但用于模式布局。