我想将log4net配置为每个dll都有多个文件和每个文件存储...
我该如何配置?
<log4net>
<appender name="FileAppender" type="log4net.Appender.RollingFileAppender">
<file value="logs/mylog.log"/>
<appendToFile value="true"/>
<rollingStyle value="Size"/>
<maximumFileSize value="10MB"/>
<staticLogFileName value="true"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date{yyyy-MM-dd HH:mm:ss.fff},[%thread],%-5level,%logger,[%ndc],%message%newline"/>
</layout>
</appender>
<appender name="ColoredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
<mapping>
<level value="ERROR"/>
<foreColor value="Red"/>
</mapping>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date{yyyy-MM-dd HH:mm:ss.fff} [%thread] %-5level %logger - %message%newline"/>
</layout>
</appender>
<root>
<level value="INFO"/>
<appender-ref ref="FileAppender"/>
<appender-ref ref="ColoredConsoleAppender"/>
</root>
</log4net>
我们说我有3个dll,Test.Scan.dll,Test.Warn.dll和Test.Processor.dll。我应该配置为dll名称还是命名空间?
我知道有&#34;过滤器&#34; in&#34; appender&#34;水平。但是我该怎么做呢?
答案 0 :(得分:1)
如果使用标准记录器命名约定,则不需要使用过滤器:记录器的名称。只需添加以您想要使用的公共根命名的记录器,并在这些记录器中设置不同的appender
<appender name="FileAppender.Test.Scan" type="log4net.Appender.RollingFileAppender">
...
</appender>
<appender name="FileAppender.Test.Warn" type="log4net.Appender.RollingFileAppender">
...
</appender>
<appender name="ColoredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
...
</appender>
<!-- Set root logger level to DEBUG and its only appender to A1 -->
<root>
<level value="DEBUG" />
<appender-ref ref="ColoredConsoleAppender" />
</root>
<logger name="Test.Scan">
<level value="INFO" />
<appender-ref ref="FileAppender.Test.Scan" />
</logger>
<logger name="Test.Warn">
<level value="INFO" />
<appender-ref ref="FileAppender.Test.Warn" />
</logger>
名称以Test.Warn开头的记录器将选择<logger name="Test.Warn">
配置节点appender。当然,如果你有一个名为&#34;测试&#34;其配置将应用于名称以&#34; Test&#34;