zoukankan      html  css  js  c++  java
  • log4net示例2日志输入存入Access

    需求:基于log4net组建,创建Console程序将日志输出到Access数据库。

    具体实施:

    (1)创建控制台程序。

    (2)控制台程序中,添加一个纯文本文件,文件命名为“log-Access.set”

              log-Assess.set文件的内容如下:

    <?xml version="1.0" encoding="utf-8" ?>
    <log4net xmlns="urn:log4net">
      <root xmlns="">
        <level value="ALL" />
        <appender-ref ref="AdoNetAppender_Access" />
      </root>
      <appender  xmlns="" name="AdoNetAppender_Access" type="log4net.Appender.AdoNetAppender">
        <connectionString value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\my\Desktop\02\log4net\bin\log\log4net.mdb " />
        <commandText value="INSERT INTO LogDetails([LogDate],[Thread],[logLevel],[Logger],[Message]) VALUES(@logDate, @thread, @logLevel,@logger,@message)" />

         <!--BufferSize为缓冲区大小,只有日志记录超10条才会一块写入到数据库--> 

        <bufferSize value="10"/>
        <!--定义各个参数-->
        <parameter>
          <parameterName value="@logDate" />
          <dbType value="String" />
          <size value="240" />
          <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date" />
          </layout>
        </parameter>
        <parameter>
          <parameterName value="@thread"/>
          <dbType value="String" />
          <size value="240" />
          <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%thread" />
          </layout>
        </parameter>
        <parameter>
          <parameterName value="@logLevel" />
          <dbType value="String" />
          <size value="240" />
          <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%level" />
          </layout>
        </parameter>
        <parameter>
          <parameterName value="@logger" />
          <dbType value="String" />
          <size value="240" />
          <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%logger" />
          </layout>
        </parameter>
        <parameter>
          <parameterName value="@message" />
          <dbType value="String" />
          <size value="240" />
          <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%message" />
          </layout>
        </parameter>
      </appender>
    </log4net>

    注意:(1)文件属性设置为:如果较新则复制

            (2)connectionString设置里面的文件路径。绝对路径

    (3)在AssemblyInfo.cs文件里添加

           [assembly: log4net.Config.XmlConfigurator(ConfigFile = "log-Access.set", Watch = true)]

     (4)在ConnectionString里面对应的路径中,创建log4net.mdb数据库,并创建表

    CREATE TABLE [LogDetails] (
        ID   AutoIncrement,
        [logDate] longText,
        [Thread] longText,
        [logLevel] longText,
        [Logger] longText,
        [Message] longText,
        Primary   Key   (ID)

    )    

    (5)添加代码 

      static void Main(string[] args)
            {
             
                ILog log = log4net.LogManager.GetLogger(typeof(Program));
                Random random = new Random();
                for (int i = 0; i < 2; i++)
                {
                    //记录错误日志
                    if (log.IsErrorEnabled)
                        log.Debug("你引起了一个错误,错误ID为:" + random.Next().ToString());

                    //记录严重错误 
                    if (log.IsFatalEnabled)
                        log.Fatal("你引发了一个总结者错误,可能导致系统终止,ID为:" + random.Next().ToString());
                    //记录一般信息
                    if (log.IsInfoEnabled)
                        log.Info("你计划记录一个信息,id为:" + random.Next().ToString());
                    //记录调试信息 
                    if (log.IsDebugEnabled)
                        log.Debug("调试信息,调试ID为:" + random.Next().ToString());
                    //记录警告信息
                    if (log.IsWarnEnabled)
                    {
                        log.Warn("警告:警告ID为:" + random.Next().ToString());
                    }
                }
            }

    注意:在64位的Windows7系统调试时,如果office是32位将你的应用程序将原有的AnyCPU更改为CPU x86.

            如果是64位,安装64位的Jet40驱动。可以到http://www.microsoft.com/downloads/zh-cn/details.aspx?FamilyID=c06b8369-60dd-4b64-a44b-84b371ede16d 下载

          否则会报错:未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序。

      其它数据库,基本和Access类似,只是在连接字符串和,插入部分有所不同。 

    示例程序

        

  • 相关阅读:
    结合react-amap使用高德地图的原生API
    QSqlRelationalTableModel的Select语句会改变列的名字
    实体对象模型中使用自跟踪实体分离Model和Context
    An incompatible version 1.1.14 of APR based Apache Tomcat Native library is installed, while Tomcat
    一步一步学习Unity3d学习笔记系1.4单服模式架构
    MongoDB的连接字符串
    将QQl里面的休息都迁移过来了
    WPF一段代码搞定所有的点击事件
    ini配置文件的读取
    手写Json转换
  • 原文地址:https://www.cnblogs.com/mymhj/p/2483251.html
Copyright © 2011-2022 走看看