log4net:conversionPattern可以有条件吗?

时间:2014-05-02 22:57:59

标签: c# .net log4net

我正在使用EventLogAppender将事件从我的网络应用程序记录到Windows事件日志。是否可以使conversionPattern成为条件,以便对于Error事件,我可以添加更多细节?

1 个答案:

答案 0 :(得分:0)

我想你在谈论log4net的布局功能;这是可能的,因为ILayout接口采用包含日志级别的LoggingEvent实体。但我不知道这样做的实现,所以你必须自己编写。

我认为有一种最简单的方法;只需使用两个appender,一个过滤警告及以下,一个过滤错误及以上,并在每个appender中使用不同的布局。

<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>

只需将两个appender添加到您的日志记录入口点(例如root)并且您已完成