使用Log4Net的输出日志到MySQL
使用步骤如下:
1. 添加引用Log4Net.dll, mysql.data.dll到工程中
note: mysql.data.dll 版本要高,最好到mysql官网下载最新的版本(6.2.7)。本人的教训:用了低版本的mysql.data.dll, 以至于没办法插入数据到MySQL数据库,插入表内容为NULL, 提示System.data.dll加载错误。
2. 添加app.config到工程中
app.config 配置如下:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> </configSections> <log4net> <appender name="AdoNetAppender_MySql" type="log4net.Appender.AdoNetAppender"> <bufferSize value="1"/> <param name="ConnectionType" value="MySql.Data.MySqlClient.MySqlConnection, MySql.Data"/> <param name="ConnectionString" value="server=localhost;database=test;Uid=root;Pwd=root;"/> <commandText value="INSERT INTO log4net(log_datetime,log_thread,log_level,log_logger,log_message,Exception) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)"/> <parameter> <parameterName value="@log_date"/> <dbType value="DateTime"/> <layout type="log4net.Layout.RawTimeStampLayout"/> <!--<layout type="log4net.Layout.PatternLayout" value="%date{yyyy'-'MM'-'dd HH':'mm':'ss}" />--> </parameter> <parameter> <parameterName value="@thread"/> <dbType value="String"/> <size value="255"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%thread"/> </layout> </parameter> <parameter> <parameterName value="@log_level"/> <dbType value="String"/> <size value="50"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%level"/> </layout> </parameter> <parameter> <parameterName value="@logger"/> <dbType value="String"/> <size value="255"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%logger"/> </layout> </parameter> <parameter> <parameterName value="@message"/> <dbType value="String"/> <size value="4000"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%message"/> </layout> </parameter> <parameter> <parameterName value="@exception"/> <dbType value="String"/> <size value="2000"/> <layout type="log4net.Layout.ExceptionLayout"/> </parameter> </appender> <root> <level value="ALL"/> <appender-ref ref="AdoNetAppender_MySql"/> </root> <logger name="*"> <level value="ALL" /> <appender-ref ref="AdoNetAppender_MySql" /> </logger> </log4net> </configuration>
3. 在AssemblyInfo.cs中添加以下一条语句:
[assembly: log4net.Config.XmlConfigurator(ConfigFileExtension = "config", Watch = true)]
4. 在程序中调用
log4net.ILog log = log4net.LogManager.GetLogger("MyLogger"); log.Info("hello world!");
5. 可以到mysql数据库中查看是否成功插入一条Message: hello world!
Re: 以上是个人的总结,提供参考。