zoukankan      html  css  js  c++  java
  • 使用log4net 日志输出到数据库MySQL

    使用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: 以上是个人的总结,提供参考。

  • 相关阅读:
    大神没事接个活!
    帝国cms 后台账户密码都对,提示你还未登录!
    帝国cms 反馈时提示此信息反馈不存在
    帝国cms e:loop 文章编号标签
    eyoucms 首页以及列表页内容调用标题、关键词、描述
    eyoucms 点击下拉分类,没有分类的不切换代码
    eyoucms class类样式切换写法
    eyoucms if 判断显示或者隐藏
    eyoucms 调用搜索代码
    eyoucms 获取单页内容的代码
  • 原文地址:https://www.cnblogs.com/sql4me/p/3254134.html
Copyright © 2011-2022 走看看