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

Sha*_*rov 3 .net c# logging log4net

我有 log4net,我想在同一个程序集中为不同类型(两种特殊类型)使用不同的信息颜色。是否可以?如果可能我该怎么办?

提前致谢。

更新:Appender 应该是 ColoredConsoleAppender。

fur*_*ier 5

我想这就是你要找的

<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>
Run Code Online (Sandbox Code Playgroud)

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