我想为所有东西提供INFO,为一个包提供DEBUG。我尝试了很多变种:
<log4net>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="C:/temp/AutoTag.log"/>
<param name="AppendToFile" value="true"/>
<param name="MaxSizeRollBackups" value="2"/>
<param name="MaximumFileSize" value="100KB"/>
<param name="RollingStyle" value="Size"/>
<param name="StaticLogFileName" value="true"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] ac.server %-5p %c - %m%n"/>
</layout>
</appender>
<root>
<level value="INFO"/>
<appender-ref ref="RollingFileAppender"/>
</root>
<logger name="AutoTagCore.net.windward.autotag.utils">
<level value="DEBUG"/>
</logger>
</log4net>
但没有任何作用。如果我删除<root/>
部分,我会在一个包中找到详细信息。否则就好像<logger/>
部分不存在一样。
我怎样才能做到这一点? (更新以显示完整的log4net部分)。
Update2:我是个白痴 - 我的包名错了。
答案 0 :(得分:1)
Logger将从root继承所有appender。您只需指定级别:
<root>
<level value="INFO"/>
<appender-ref ref="RollingFileAppender"/>
</root>
<logger name="AutoTagCore.net.windward.autotag.utils">
<level value="DEBUG"/>
</logger>
BTW 验证appender设置 - 可以限制为INFO级别:
<threshold value="INFO"/>
最后一个可能的问题 - 您可以使用不同类型的命名空间和记录器名称(可能是一些拼写错误)。