本文不探究log4.net的源码,只是从应用角度说一说配置时的几个基本要素。
总的来说,有2大节点最关键:appender和logger.
appender定义了日志输出类型、路径、命名规则等信息。例如,上篇文章提到的最常用的存文本:
<appender name="LogFileAppender" type="log4net.Appender.FileAppender" > <param name="File" value="D:\WebTest\xixi.txt" /> <param name="AppendToFile" value="true" /> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%d [%t] %-5p %c [%M] - %m%n" /> </layout> </appender>
logger则是预定义一个日志对象供代码调用,包括调用名、日志级别、引用的appender名称等。
<logger name="MyNameSpace.ClassName"> <level value="INFO" /> <appender-ref ref="LogFileAppender" /> </logger>
这里要注意,可以为每一个类定义一个logger,而logger又可以引用某一个appender,这就能帮我们把不同模块的日志分别记在不同的地方,以便查阅。
例如上面这个logger,就是专门为MyNameSpace这个命名空间下的ClassName这个类所预定义的一个日志对象,在代码里可以这么调用:
private static ILog LOGGER = LogManager.GetLogger(typeof(MyNameSpace.ClassName));
<root>是一个特殊节点,是所有logger的祖先。你可以不定义任何其他logger, 程序可以全部使用这个默认的root logger.
其他一些次要节点<layout>,<param>,<filter>,以后再慢慢细说。