现在的位置: 首页 > 综合 > 正文

log4net 日志 插入mysql

2013年09月11日 ⁄ 综合 ⁄ 共 2589字 ⁄ 字号 评论关闭

1.在本地创建数据库

脚本:

CREATE TABLE `mylog` (

  `id` int(11) NOT NULL AUTO_INCREMENT,
  `log_datetime` datetime DEFAULT 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`)

) ENGINE=InnoDB AUTO_INCREMENT=127 DEFAULT CHARSET=gb2312;

2.配置文件

<?xml version="1.0"?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
  </configSections>

  <log4net>
    <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">

      <bufferSize value="2"/>
      <param name="ConnectionType" value="MySql.Data.MySqlClient.MySqlConnection, MySql.Data"/>
      <param name="ConnectionString" value="database=test;server=localhost;user id=root;password=root;Connect Timeout=120; character set=utf8;Use Affected Rows=true;"/>
      <commandText value="INSERT INTO mylog111(id,log_datetime,log_thread,log_level,log_logger,log_message) VALUES (null,@log_date, @thread, @log_level, @logger, @message)"/>
      <parameter>
        <parameterName value="@log_date"/>
        <dbType value="DateTime"/>
        <layout type="log4net.Layout.PatternLayout" value="%d{yyyy-MM-dd HH:mm:ss}"/>
      </parameter>
      <parameter>
        <parameterName value="@thread"/>
        <dbType value="String"/>
        <layout type="log4net.Layout.PatternLayout"  value="%t">
        </layout>
      </parameter>
      <parameter>
        <parameterName value="@log_level"/>
        <dbType value="String"/>
        <layout type="log4net.Layout.PatternLayout"  value="%p">
        </layout>
      </parameter>
      <parameter>
        <parameterName value="@logger"/>
        <dbType value="String"/>
        <layout type="log4net.Layout.PatternLayout"  value="%c">
        </layout>
      </parameter>
      <parameter>
        <parameterName value="@message"/>
        <dbType value="String"/>
        <layout type="log4net.Layout.PatternLayout"  value="%m">
        </layout>
      </parameter>
      <filter type="log4net.Filter.LevelRangeFilter">
        <levelMin value="Info" />
        <levelMax value="Fatal" />
      </filter>
    </appender>
    <root>
      <level value="Debug"/>
      <appender-ref ref="AdoNetAppender"/>
    </root>
  </log4net>

  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
  </startup>

  <system.data>
    <DbProviderFactories>
      <remove invariant="MySql.Data.MySqlClient"/>
      <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.3.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"/>
    </DbProviderFactories>
  </system.data>
  
</configuration>

注意

1.需要MySql.Data.dll的支持

2.有人说appender的名称不能为AdoNetAppender,是错误的,经过测试是可以成功记录日志到数据库的

抱歉!评论已关闭.