简体   繁体   English

log4net:能否将conversionPattern设为条件条件?

[英]log4net: Can conversionPattern made conditional?

I'm using EventLogAppender to log events from my web app to windows eventlog. 我正在使用EventLogAppender将事件从我的Web应用程序记录到Windows事件日志中。 Is it possible to make conversionPattern conditional so that for Error events, I can add more details? 是否可以使conversionPattern有条件,以便为Error事件提供更多详细信息?

I suppose you are talking about the layout capabilities of log4net; 我想您正在谈论log4net的布局功能; it is possible since the ILayout interface takes a LoggingEvent entity that contains the log level. 这是可能的,因为ILayout接口需要一个LoggingEvent包含日志级别的实体。 I don't know however of an implementation that does that so you would have to write your own. 但是我不知道这样做的实现,因此您必须编写自己的实现。

I think there is a simplest way though; 我认为有一种最简单的方法。 just use two appenders, one that filters Warning and below, one that filters Error and above, and use a different layout in each appender. 只需使用两个附加程序,一个可以过滤Warning和以下内容,一个可以过滤Error及其以上,然后在每个附加程序中使用不同的布局。

<appender name="WarningAndBelowEventLogAppender" type="log4net.Appender.EventLogAppender">
    ...
    <filter type="log4net.Filter.LevelRangeFilter">
        <levelMax value="WARN" />
        <acceptOnMatch value="true" />
    </filter>
    <!-- layout for warnings and below here --> 
</appender>

<appender name="ErrorAndAboveEventLogAppender" type="log4net.Appender.EventLogAppender">
    ...
    <filter type="log4net.Filter.LevelRangeFilter">
        <levelMin value="ERROR" />
        <acceptOnMatch value="true" />
    </filter>
    <!-- layout for errors and above here --> 
</appender>

Just add the two appenders to your logging entry point (root for example) and you're done 只需将两个追加程序添加到您的日志记录入口点(例如root),就可以完成

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM