惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

IT之家
IT之家
博客园_首页
S
SegmentFault 最新的问题
罗磊的独立博客
博客园 - 【当耐特】
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
阮一峰的网络日志
阮一峰的网络日志
D
Docker
雷峰网
雷峰网
Google DeepMind News
Google DeepMind News
博客园 - 司徒正美
V
V2EX
大猫的无限游戏
大猫的无限游戏
V
Visual Studio Blog
腾讯CDC
宝玉的分享
宝玉的分享
酷 壳 – CoolShell
酷 壳 – CoolShell
人人都是产品经理
人人都是产品经理
T
Tailwind CSS Blog
Vercel News
Vercel News
H
Help Net Security
博客园 - Franky
D
DataBreaches.Net
aimingoo的专栏
aimingoo的专栏

博客园 - kongxx

Java & .Net通讯问题 无异间发现的好网站 Message: 因为当前线程不在单线程单元中,故无法实例化 ActiveX 控件 错误处理方法 C#的MD5实现 Java的MD5实现 PHP实现的Telnet 【引用】 microsoft WINDOWS 系统错误代码 [收藏] PicoContainer学习手册 PicoContainer学习手册 Java动态代理实现 [导入]Digester学习笔记 [导入]使用对Ant编程来实现简单文件的打包 [导入]关闭WinXP自带的Zip功能 [导入]使Tomcat可以下载中文文件 [导入].Net中使用com组件后发生System.ArithmeticException异常的解决办法 [导入]使用简单的Web开发架构 [导入].Net配置文件常用配置说明 [导入]使控件拥有透明背景色 [引用] [导入].Net配置log4net
使用log4net记录日志到MySQL中
kongxx · 2005-10-09 · via 博客园 - kongxx

在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了,呵呵。