需求:基于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类似,只是在连接字符串和,插入部分有所不同。

示例程序

https://www.cnblogs.com/mymhj/archive/2012/05/04/2483251.html

log4net示例2-日志输入存入Access(转)的更多相关文章

  1. 也用 Log4Net 之将日志记录到数据库的配置 (一)

    也用 Log4Net  之将日志记录到数据库的配置 (一) 前段时间我一直想做一个通用一点的日志记录系统,可以便于不同的业务组调用进行日志记录及分析.本来打算着自己下手写一个,后面发现各业务组可能会需 ...

  2. springmvc 项目完整示例06 日志–log4j 参数详细解析 log4j如何配置

    Log4j由三个重要的组件构成: 日志信息的优先级 日志信息的输出目的地 日志信息的输出格式 日志信息的优先级从高到低有ERROR.WARN. INFO.DEBUG,分别用来指定这条日志信息的重要程度 ...

  3. log4net记录系统错误日志到文本文件用法详解

    log4net是一个完全免费开源的插件,可以去官网下载源码. 一般系统操作日志不会用log4net,自己写代码存入数据库更方便合理,但是系统部署后运行在客户环境,难免会发生系统bug.崩溃.断网等无法 ...

  4. aspnetcore进程内托管的坑-非常规方法解决Log4Net不写日志的问题

    问题描述:Log4Net,本地测试一切正常,发布后,无法自动创建文件夹和日志文件,无法写入文件. 一.在项目中配置Log4Net 请参考我的上一篇博客 <aspnetcore配置log4net并 ...

  5. (六)Net Core项目使用Controller之一 c# log4net 不输出日志 .NET Standard库引用导致的FileNotFoundException探究 获取json串里的某个属性值 common.js 如何调用common.js js 筛选数据 Join 具体用法

    (六)Net Core项目使用Controller之一 一.简介 1.当前最流行的开发模式是前后端分离,Controller作为后端的核心输出,是开发人员使用最多的技术点. 2.个人所在的团队已经选择 ...

  6. Log4Net 之将日志记录到数据库的配置 (一)

    原文:Log4Net 之将日志记录到数据库的配置 (一) 前段时间我一直想做一个通用一点的日志记录系统,可以便于不同的业务组调用进行日志记录及分析.本来打算着自己下手写一个,后面发现各业务组可能会需要 ...

  7. Asp.net Core + Log4net + ELK 搭建日志中心

    原文:Asp.net Core + Log4net + ELK 搭建日志中心 Docker中一键安装ELK 对于这种工具类的东西,第一步就直接到docker的hub中查找了,很幸运,不仅有Elasti ...

  8. Log4net入门(日志文件篇)

    在上一篇Log4net入门(控制台篇)中,我们将日志信息输出到控制台中,在这一篇中,我们将描述如何将日志信息写到文件中.要将日志信息写入文件非常简单,只需要在Log4net.config配置文件中添加 ...

  9. C# 使用Log4Net记录程序日志

    在之前的博客中,写过使用系统内置的Trace类记录程序日志,具体请参考:C# 使用Trace记录程序日志.这篇博客将介绍如何使用Log4Net记录程序日志. 首先需要引用Log4Net.dll,我们可 ...

随机推荐

  1. Linux iftop 安装与参数详解

    介绍 iftop是一款实时流量监控工具,监控TCP/IP连接等,缺点就是无报表功能.必须以root身份才能运行. .编译安装如果采用编译安装可以到iftop官网下载最新的源码包. 安装前需要已经安装好 ...

  2. 洛谷 AT2434 JOI 公園 (JOI Park) 题解

    人生第一次AC黑题,我太感动了. 每日一题 day31 打卡 Analysis 先跑遍DJ,求出1到 i的最短路.得到每个点到 1号点的距离后,从小到大排序一遍,这时便可以枚举每个点到 1号点的距离修 ...

  3. Hive 模式设计

    Hive看上去很像关系型数据库.不过,Hive实现和使用的方式和传统的关系型数据库非常不同.Hive是反模式的. 本文将重点介绍Hive中哪些模式是用户应该使用的,儿哪些是应该避免的 一.按天划分的表 ...

  4. fhq treap ------ luogu P3369 【模板】普通平衡树(Treap/SBT)

    二次联通门 : LibreOJ #104. 普通平衡树 #include <cstdio> #include <iostream> #include <algorithm ...

  5. [WARNING] 找不到编译器:wepy-compiler-less。 [Error] 未发现相关 less 编译器配置,请检查wepy.config.js文件。

    npm install less 之后 npm install wepy-compiler-less 解决 请点赞!因为你的鼓励是我写作的最大动力! 吹逼交流群:711613774

  6. Pytest权威教程09-捕获标准输出及标准错误输出

    目录 捕获标准输出及标准错误输出 默认 stdout/stderr/stdin 捕获行为 设置捕获方法或禁用捕获 调试中使用print语句 在测试用例中使用的捕获的输出 返回: Pytest权威教程 ...

  7. Pytest权威教程15-运行Nose用例

    目录 运行Nose用例 使用方法 支持的nose风格 不支持的习语/已知问题 返回: Pytest权威教程 运行Nose用例 Pytest基本支持运行Nose框架格式的测试用例. 使用方法 后安装py ...

  8. [Shell]Docker remote api未授权访问漏洞(Port=2375)

    0x01 简介 该未授权访问漏洞是因为docker remote api可以执行docker命令,从官方文档可以看出,该接口是目的是取代docker 命令界面,通过url操作docker. Docke ...

  9. css中的浮动与定位

    传送门:https://www.cnblogs.com/junwuyao/p/7435257.html

  10. Java 面向对象(十五)

    Lambda表达式 1. 函数式编程思想概述 在数学中,函数就是有输入量.输出量的一套计算方案,也就是"拿什么东西做什么事情".相对而言,面向对象过分强调"必须通过对象的 ...