使用log4net组件记录系统日志
log4net是为.net下记录系统日志开发的框架组件,功能强大,使用也比较方便。
使用方法:
1. 在自己的项目中添加对log4net.dll的引用。
2. 设置配置文件App.config(也可以为log4net设置单独的配置文件,参考CarHui的在.Net程序中使用log4net记录日志(示例) )
示例:
3. 在代码中使用logger。
一些参考资料,打包成了chm文件,点此下载。
使用方法:
1. 在自己的项目中添加对log4net.dll的引用。
2. 设置配置文件App.config(也可以为log4net设置单独的配置文件,参考CarHui的在.Net程序中使用log4net记录日志(示例) )
示例:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<!--如果不用App.config作配置文件,则configSections节不是必须的。-->
<configSections>
<!--“type”属性的完整格式为:配置节处理器类名,程序集名称,Version=程序集版本号,Culture=区域信息,PublicKeyToken=公钥-->
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections>
<log4net>
<!--日志记录器logger,可以有多个-->
<logger name="AppLogger">
<level value="INFO" />
<appender-ref ref="LogFileAppender" />
<appender-ref ref="ConsoleAppender" />
</logger>
<logger name="Form1">
<level value="DEBUG" />
<appender-ref ref="LogFileAppender" />
</logger>
<!--所有logger的基,root的设置在所有logger中都起作用。
当在root和logger中重复设定相同的appender时,你会发现同一日志信息将被记录两次。-->
<!--<root>
<level value="WARN" />
<appender-ref ref="LogFileAppender" />
<appender-ref ref="ConsoleAppender" />
</root>-->
<!--一个appender可以由多个logger共用,当然一个logger可以指定多个appender。-->
<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
<param name="File" value="App.log" />
<param name="AppendToFile" value="true" />
<layout type="log4net.Layout.PatternLayout">
<param name="Header" value="[Header]\r\n" />
<param name="Footer" value="[Footer]\r\n" />
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] %X{auth} - %m%n" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="DEBUG" />
<param name="LevelMax" value="FATAL" />
</filter>
</appender>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] %X{auth} - %m%n" />
</layout>
</appender>
</log4net>
</configuration>
<configuration>
<!--如果不用App.config作配置文件,则configSections节不是必须的。-->
<configSections>
<!--“type”属性的完整格式为:配置节处理器类名,程序集名称,Version=程序集版本号,Culture=区域信息,PublicKeyToken=公钥-->
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections>
<log4net>
<!--日志记录器logger,可以有多个-->
<logger name="AppLogger">
<level value="INFO" />
<appender-ref ref="LogFileAppender" />
<appender-ref ref="ConsoleAppender" />
</logger>
<logger name="Form1">
<level value="DEBUG" />
<appender-ref ref="LogFileAppender" />
</logger>
<!--所有logger的基,root的设置在所有logger中都起作用。
当在root和logger中重复设定相同的appender时,你会发现同一日志信息将被记录两次。-->
<!--<root>
<level value="WARN" />
<appender-ref ref="LogFileAppender" />
<appender-ref ref="ConsoleAppender" />
</root>-->
<!--一个appender可以由多个logger共用,当然一个logger可以指定多个appender。-->
<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
<param name="File" value="App.log" />
<param name="AppendToFile" value="true" />
<layout type="log4net.Layout.PatternLayout">
<param name="Header" value="[Header]\r\n" />
<param name="Footer" value="[Footer]\r\n" />
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] %X{auth} - %m%n" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="DEBUG" />
<param name="LevelMax" value="FATAL" />
</filter>
</appender>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] %X{auth} - %m%n" />
</layout>
</appender>
</log4net>
</configuration>
3. 在代码中使用logger。
// 根据配置文件对logger进行配置。
object o = ConfigurationSettings.GetConfig( "log4net" );
log4net.Config.DOMConfigurator.Configure( o as System.Xml.XmlElement );
log4net.ILog logger = log4net.LogManager.GetLogger( "AppLogger" );
// 在需要的地方调用logger记录日志信息。
logger.Info("Start application");
object o = ConfigurationSettings.GetConfig( "log4net" );
log4net.Config.DOMConfigurator.Configure( o as System.Xml.XmlElement );
log4net.ILog logger = log4net.LogManager.GetLogger( "AppLogger" );
// 在需要的地方调用logger记录日志信息。
logger.Info("Start application");
一些参考资料,打包成了chm文件,点此下载。