http://www.cnblogs.com/kongxx/archive/2005/10/09/251073.aspx
在log4net是.net平台中日志记录的开源工具包,其中包括了很多记录日志的方式和模板,详细可以参考log4net的document,这里仅仅就在使用log4net向MySQL记录日志做说明。
1)首先需要到mysql的官方网站(www.mysql.com)下载驱动,网站上提供了两个驱动,这里我使用的mysql-connector-net连接器,版本是1.0.6。其中在下载的时候会有两种包,一种是.exe安装包,一种是no-install包,我这里使用的是no-install包(文件名:mysql-connector-net-1.0.6-noinstall.zip)。解压缩zip文件,复制bin\net-1.1\release\MySql.Data.dll到项目下;
2)在项目中添加引用,选择MySql.Data.dll;
3)在本机的mysql上使用test数据库,使用一下sql创建表:
CREATE
TABLE
mylog111 (
id int ( 11 ) NOT NULL auto_increment,
log_datetime timestamp NOT NULL ,
log_thread varchar ( 255 ) default NULL ,
log_level varchar ( 255 ) default NULL ,
log_logger varchar ( 255 ) default NULL ,
log_message varchar ( 255 ) default NULL ,
PRIMARY KEY (id)
)
id int ( 11 ) NOT NULL auto_increment,
log_datetime timestamp NOT NULL ,
log_thread varchar ( 255 ) default NULL ,
log_level varchar ( 255 ) default NULL ,
log_logger varchar ( 255 ) default NULL ,
log_message varchar ( 255 ) default NULL ,
PRIMARY KEY (id)
)
4)修改app.config添加以下内容
<?
xml version="1.0" encoding="gb2312"
?>
< configuration >
< configSections >
< section name ="log4net" type ="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</ configSections >
< log4net >
< appender name ="stdout" type ="log4net.Appender.ConsoleAppender" >
< layout type ="log4net.Layout.PatternLayout" >
< param name ="ConversionPattern" value ="[%d %l] %m%n" />
</ layout >
</ appender >
< appender name ="ADONetAppender" type ="log4net.Appender.ADONetAppender" >
< param name ="ConnectionType" value ="MySql.Data.MySqlClient.MySqlConnection, MySql.Data" />
< param name ="ConnectionString" value ="database=test;server=localhost;user id=root;password=;old syntax=yes" />
< param name ="CommandText" value ="insert into mylog(log_datetime,log_thread,log_level,log_logger,log_message) values(@log_datetime, @log_thread , @log_level, @log_logger, @log_message)" />
< param name ="Parameter" >
< param name ="ParameterName" value ="@log_datetime" />
< param name ="DbType" value ="DateTime" />
< param name ="Layout" type ="log4net.Layout.PatternLayout" >
< param name ="ConversionPattern" value ="%d{yyyy'-'MM'-'dd HH':'mm':'ss'.'fff}" />
</ param >
</ param >
< param name ="Parameter" >
< param name ="ParameterName" value ="@log_thread" />
< param name ="DbType" value ="String" />
< param name ="Size" value ="255" />
< param name ="Layout" type ="log4net.Layout.PatternLayout" >
< param name ="ConversionPattern" value ="%t" />
</ param >
</ param >
< param name ="Parameter" >
< param name ="ParameterName" value ="@log_level" />
< param name ="DbType" value ="String" />
< param name ="Size" value ="50" />
< param name ="Layout" type ="log4net.Layout.PatternLayout" >
< param name ="ConversionPattern" value ="%p" />
</ param >
</ param >
< param name ="Parameter" >
< param name ="ParameterName" value ="@log_logger" />
< param name ="DbType" value ="String" />
< param name ="Size" value ="255" />
< param name ="Layout" type ="log4net.Layout.PatternLayout" >
< param name ="ConversionPattern" value ="%c" />
</ param >
</ param >
< param name ="Parameter" >
< param name ="ParameterName" value ="@log_message" />
< param name ="DbType" value ="String" />
< param name ="Size" value ="255" />
< param name ="Layout" type ="log4net.Layout.PatternLayout" >
< param name ="ConversionPattern" value ="%m" />
</ param >
</ param >
</ appender >
< appender name ="file" type ="log4net.Appender.RollingFileAppender" >
< param name ="File" value ="log\\log" />
< param name ="AppendToFile" value ="true" />
< param name ="RollingStyle" value ="Date" />
< param name ="DatePattern" value ="yyyy-MM-dd" />
< layout type ="log4net.Layout.PatternLayout" >
< param name ="ConversionPattern" value ="[%d %l] %m%n" />
</ layout >
</ appender >
< root >
< level value ="ALL" />
< appender-ref ref ="ADONetAppender" />
</ root >
< logger name ="*" >
< level value ="ALL" />
< appender-ref ref ="ADONetAppender" />
</ logger >
</ log4net >
</ configuration >
< configuration >
< configSections >
< section name ="log4net" type ="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</ configSections >
< log4net >
< appender name ="stdout" type ="log4net.Appender.ConsoleAppender" >
< layout type ="log4net.Layout.PatternLayout" >
< param name ="ConversionPattern" value ="[%d %l] %m%n" />
</ layout >
</ appender >
< appender name ="ADONetAppender" type ="log4net.Appender.ADONetAppender" >
< param name ="ConnectionType" value ="MySql.Data.MySqlClient.MySqlConnection, MySql.Data" />
< param name ="ConnectionString" value ="database=test;server=localhost;user id=root;password=;old syntax=yes" />
< param name ="CommandText" value ="insert into mylog(log_datetime,log_thread,log_level,log_logger,log_message) values(@log_datetime, @log_thread , @log_level, @log_logger, @log_message)" />
< param name ="Parameter" >
< param name ="ParameterName" value ="@log_datetime" />
< param name ="DbType" value ="DateTime" />
< param name ="Layout" type ="log4net.Layout.PatternLayout" >
< param name ="ConversionPattern" value ="%d{yyyy'-'MM'-'dd HH':'mm':'ss'.'fff}" />
</ param >
</ param >
< param name ="Parameter" >
< param name ="ParameterName" value ="@log_thread" />
< param name ="DbType" value ="String" />
< param name ="Size" value ="255" />
< param name ="Layout" type ="log4net.Layout.PatternLayout" >
< param name ="ConversionPattern" value ="%t" />
</ param >
</ param >
< param name ="Parameter" >
< param name ="ParameterName" value ="@log_level" />
< param name ="DbType" value ="String" />
< param name ="Size" value ="50" />
< param name ="Layout" type ="log4net.Layout.PatternLayout" >
< param name ="ConversionPattern" value ="%p" />
</ param >
</ param >
< param name ="Parameter" >
< param name ="ParameterName" value ="@log_logger" />
< param name ="DbType" value ="String" />
< param name ="Size" value ="255" />
< param name ="Layout" type ="log4net.Layout.PatternLayout" >
< param name ="ConversionPattern" value ="%c" />
</ param >
</ param >
< param name ="Parameter" >
< param name ="ParameterName" value ="@log_message" />
< param name ="DbType" value ="String" />
< param name ="Size" value ="255" />
< param name ="Layout" type ="log4net.Layout.PatternLayout" >
< param name ="ConversionPattern" value ="%m" />
</ param >
</ param >
</ appender >
< appender name ="file" type ="log4net.Appender.RollingFileAppender" >
< param name ="File" value ="log\\log" />
< param name ="AppendToFile" value ="true" />
< param name ="RollingStyle" value ="Date" />
< param name ="DatePattern" value ="yyyy-MM-dd" />
< layout type ="log4net.Layout.PatternLayout" >
< param name ="ConversionPattern" value ="[%d %l] %m%n" />
</ layout >
</ appender >
< root >
< level value ="ALL" />
< appender-ref ref ="ADONetAppender" />
</ root >
< logger name ="*" >
< level value ="ALL" />
< appender-ref ref ="ADONetAppender" />
</ logger >
</ log4net >
</ configuration >
5)在代码中使用一下代码测试
log.Info("==========================");
如果顺利应该OK了,呵呵。