kongxx's blog

有困难要上,没有困难创造困难也要上!
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

使用log4net记录日志到MySQL中

Posted on 2005-10-09 17:45  kongxx  阅读(2261)  评论(1编辑  收藏  举报

在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(11NOT NULL auto_increment,
  log_datetime 
timestamp NOT NULL,
  log_thread 
varchar(255default NULL,
  log_level 
varchar(255default NULL,
  log_logger 
varchar(255default NULL,
  log_message 
varchar(255default 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>

5)在代码中使用一下代码测试
    log.Info("==========================");

如果顺利应该OK了,呵呵。