log4net:不同类型的不同信息颜色

时间:2015-03-20 18:28:49

标签: c# .net logging log4net

我有log4net,我希望在同一个程序集中为不同类型(两种特殊类型)提供不同的信息颜色。可能吗?如果有可能我该怎么办?

提前致谢。

更新:Appender应该是ColoredConsoleAppender。

1 个答案:

答案 0 :(得分:4)

我认为这就是你要找的东西

<log4net>
    <appender name="Common" type="log4net.Appender.ColoredConsoleAppender">
        <filter type="log4net.Filter.LoggerMatchFilter">  
            <loggerToMatch value="Custom1" />  
            <acceptOnMatch value="false" />  
        </filter>
        <filter type="log4net.Filter.LoggerMatchFilter">  
            <loggerToMatch value="Custom2" />  
            <acceptOnMatch value="false" />  
        </filter>
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
        </layout>
    </appender>
    <appender name="Custom1" type="log4net.Appender.ColoredConsoleAppender">
        <mapping>
            <level value="INFO" />
            <backColor value="Blue" />
        </mapping>
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
        </layout>
    </appender>
    <appender name="Custom2" type="log4net.Appender.ColoredConsoleAppender">
        <mapping>
            <level value="INFO" />
            <backColor value="Light Blue" />
        </mapping>
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
        </layout>
    </appender>

    <root>
        <level value="INFO" />
        <appender-ref ref="Common"/>
    </root>
    <logger name="Namespace.Foo">
        <level value="INFO" />
        <appender-ref ref="Custom1" />
    </logger>
    <logger name="Namespace.Bar">
        <level value="INFO" />
        <appender-ref ref="Custom2" />
    </logger>
</log4net>

在这里,我制作了两个appender,为DEBUG级别提供不同的颜色。 在底部,我ColoredConsoleAppenderOne仅对Com.Foo类型有效,而ColoredConsoleAppenderTwo仅对类型Com.Bar有效