允许记录器覆盖特定的appender参数吗?
使用log4net,我可以配置一个记录器,以便它可以覆盖其中一个appender的单个参数吗?一些例子:允许记录器覆盖特定的appender参数吗?
<log4net> <appender name="A1" type="log4net.Appender.FileAppender">
<file value="log4net.log">
</appender>
<root>
<level value="ERROR" />
<appender-ref ref="A1" />
</root>
<logger name="MyLogger">
<level value="WARN" />
<appender-ref ref="A1">
<file value="MyLogger.Log"/>
</appender-ref>
</logger>
</log4net>
例如,我想配置一个我的子记录器发送输出到我的应用程序的其余部分不同的文件。我走错路了吗?我应该配置一个新的appender吗?怎么把不同的关卡发送给不同的appender?例如
<log4net> <appender name="default" type="log4net.Appender.FileAppender">
<file value="My.log">
</appender>
<appender name="errors" type="log4net.Appender.FileAppender">
<file value="Errors.log">
</appender>
<root>
<level value="DEBUG">
<appender-ref ref="default" />
</level>
<level value="ERROR">
<appender-ref ref="errors" />
</level>
</root>
</log4net>
回答:
我已经添加了这个作为一个新的答案,因为它太长,以适应评论。
尝试像
<appendToFile value="true" /> <layout type="log4net.Layout.PatternLayout">
<header value="[Header]%date " />
<footer value="[Footer]%date " />
<conversionPattern value="%date [%thread] %-5level %logger [%ndc] <%property{auth}> - %message%newline" />
</layout>
</appender>
<appender name="MyLogger" type="log4net.Appender.FileAppender">
<file type="log4net.Util.PatternString" value="MyLogger.Log" />
<appendToFile value="true" />
<layout type="log4net.Layout.PatternLayout">
<header value="[Header]%date " />
<footer value="[Footer]%date " />
<conversionPattern value="%date [%thread] %-5level %logger [%ndc] <%property{auth}> - %message%newline" />
</layout>
</appender>
<!-- Setup the root category, add the appenders and set the default level -->
<root>
<level value="INFO" />
<appender-ref ref="A1" />
</root>
<logger name="SpecialMethod">
<level value="DEBUG" />
<appender-ref ref="MyLogger" />
</logger>
</log4net
回答:
我使用类似于您的第一个xml文件的东西。 (随着log4net的为C#)
不要以为第二个XML将工作,因为,据我所知,这将解释<level value="DEBUG">
为设置日志记录级别为DEBUG,而你想要它解释为
if (Level == DEBUG) ...
以上是 允许记录器覆盖特定的appender参数吗? 的全部内容, 来源链接: utcz.com/qa/261242.html