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

推荐订阅源

W
WeLiveSecurity
T
The Exploit Database - CXSecurity.com
C
CXSECURITY Database RSS Feed - CXSecurity.com
S
Security @ Cisco Blogs
T
Threat Research - Cisco Blogs
TaoSecurity Blog
TaoSecurity Blog
Recent Commits to openclaw:main
Recent Commits to openclaw:main
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
腾讯CDC
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
T
The Blog of Author Tim Ferriss
Microsoft Azure Blog
Microsoft Azure Blog
罗磊的独立博客
F
Full Disclosure
博客园 - 【当耐特】
C
CERT Recently Published Vulnerability Notes
Engineering at Meta
Engineering at Meta
Application and Cybersecurity Blog
Application and Cybersecurity Blog
T
Threatpost
I
Intezer
V2EX - 技术
V2EX - 技术
H
Hackread – Cybersecurity News, Data Breaches, AI and More
The Hacker News
The Hacker News
小众软件
小众软件
Google DeepMind News
Google DeepMind News
T
Tailwind CSS Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
B
Blog RSS Feed
Microsoft Security Blog
Microsoft Security Blog
N
News | PayPal Newsroom
MyScale Blog
MyScale Blog
AI
AI
Vercel News
Vercel News
Spread Privacy
Spread Privacy
美团技术团队
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
The GitHub Blog
The GitHub Blog
V
Vulnerabilities – Threatpost
Schneier on Security
Schneier on Security
Cyberwarzone
Cyberwarzone
G
GRAHAM CLULEY
Help Net Security
Help Net Security
Hacker News: Ask HN
Hacker News: Ask HN
Google DeepMind News
Google DeepMind News
MongoDB | Blog
MongoDB | Blog
L
LINUX DO - 热门话题
U
Unit 42
L
LangChain Blog
Recent Announcements
Recent Announcements

博客园 - 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了,呵呵。