这里只是说明在项目中如何配置使用微软企业库的日志组件,对数据库方面的配置请参考其他资料。

1、在项目中添加Microsoft.Practices.EnterpriseLibrary.Data.dll、Microsoft.Practices.EnterpriseLibrary.Logging.dll、Microsoft.Practices.EnterpriseLibrary.Logging.Database.dll这三个引用。

2、打开EnterpriseLibrary的配置工具EntLibConfig.exe

1)选择菜单“Block->Add Logging Setting"

2)点击“+”号添加Logging Target Listeners,选择Add Database Trace Listener

3、设置Database Trace Listener中的参数,比如数据库连接、插入日志存储过程、插入分类存储过程、选择文本格式等

4、设置Database Setting中的“Connection String”中的数据库连接
5、最后保存配置文件到项目路径中。

设置后的配置文件:

<configuration><configSections><section name="loggingConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.LoggingSettings, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true" /><section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true" /></configSections><loggingConfiguration name="" tracingEnabled="true" defaultCategory="General"><listeners><add name="Event Log Listener" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.FormattedEventLogTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.FormattedEventLogTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"source="Enterprise Library Logging" formatter="Text Formatter"log="" machineName="." traceOutputOptions="None" /><add name="Database Trace Listener" type="Microsoft.Practices.EnterpriseLibrary.Logging.Database.FormattedDatabaseTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging.Database, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Database.Configuration.FormattedDatabaseTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging.Database, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"databaseInstanceName="Connection String" writeLogStoredProcName="EL_WRITELOG"addCategoryStoredProcName="EL_ADDCATEGORY" formatter="Text Formatter" /><add name="XML Trace Listener" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.XmlTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.XmlTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"fileName="test.xml" /></listeners><formatters><add type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"template="&lt;TIMESTAMP&gt; {timestamp}&lt;/TIMESTAMP&gt; {newline}
&lt;MESSAGE&gt; {message}&lt;/MESSAGE&gt;{newline}
&lt;CATEGORY&gt;{category}&lt;/CATEGORY&gt;{newline}
&lt;PRIORITY&gt;{priority}&lt;/PRIORITY&gt;{newline}
&lt;EVENTID&gt;{eventid}&lt;/EVENTID&gt;{newline}
&lt;SEVERITY&gt;{severity}&lt;/SEVERITY&gt;{newline}
&lt;TITLE&gt;{title}&lt;/TITLE&gt;{newline}
&lt;MACHINE&gt;{localMachine}&lt;/MACHINE&gt;{newline}
&lt;APP DOMAIN&gt; {localAppDomain}&lt;/APP DOMAIN&gt;{newline}
&lt;PROCESSID&gt;{localProcessId}&lt;/PROCESSID&gt;{newline}
&lt;PROCESS NAME&gt; {localProcessName}&lt;/PROCESS NAME&gt; {newline}
&lt;THREAD NAME&gt; {threadName}&lt;/THREAD NAME&gt;{newline}
&lt;WIN32 THREADID&gt;{win32ThreadId}&lt;/WIN32 THREADID&gt;{newline}
&lt;EXTENDED PROPERTIES&gt; {dictionary(&lt;KEY&gt;{key}&lt;/KEY&gt; - &lt;VALUE&gt;{value}&lt;/VALUE&gt;{newline})}&lt;/EXTENDED PROPERTIES&gt;"name="Text Formatter" /></formatters><categorySources><add switchValue="All" name="General"><listeners><add name="Database Trace Listener" /><add name="XML Trace Listener" /></listeners></add></categorySources><specialSources><allEvents switchValue="All" name="All Events" /><notProcessed switchValue="All" name="Unprocessed Category" /><errors switchValue="All" name="Logging Errors &amp; Warnings"><listeners><add name="Database Trace Listener" /><add name="XML Trace Listener" /></listeners></errors></specialSources></loggingConfiguration><dataConfiguration defaultDatabase="Connection String" /><connectionStrings><add name="Connection String" connectionString="DATA SOURCE=(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = eifoclog)));PERSIST SECURITY INFO=True;USER ID=FOC;Password=foc"providerName="System.Data.OracleClient" /></connectionStrings>
</configuration>

需要注意的是:

在工具中只能选一个监听器,但实际可以有多个监听器同时监听。

<categorySources>
            <add switchValue="All" name="General">
                <listeners>
                    <add name="Database Trace Listener" />
                    <add name="XML Trace Listener" />
                </listeners>
            </add>
        </categorySources>

在项目中使用:

    class Program{static void Main(string[] args){LogEntry logEntry = new LogEntry();logEntry.EventId = 1;logEntry.Priority = 1;logEntry.Severity = System.Diagnostics.TraceEventType.Error;logEntry.Title = "标题";logEntry.Message = "test";logEntry.Categories.Add("C#学习");logEntry.Categories.Add("Microsoft Enterprise Library学习");Logger.Writer.Write(logEntry, "General");Console.WriteLine("日志写入完成!");}}

本文参考博客地址:http://www.cnblogs.com/huangcong/archive/2010/06/04/1751087.html

示例代码地址:http://files.cnblogs.com/qiu2013/ConsoleApplication1.zip

转载于:https://www.cnblogs.com/qiu2013/p/3948131.html

使用Microsoft EnterpriseLibrary(微软企业库)日志组件把系统日志写入数据库和xml文件...相关推荐

  1. 在数据库访问项目中使用微软企业库Enterprise Library,实现多种数据库的支持

    在我们开发很多项目中,数据访问都是必不可少的,有的需要访问Oracle.SQLServer.Mysql这些常规的数据库,也有可能访问SQLite.Access,或者一些我们可能不常用的PostgreS ...

  2. 基于微软企业库的AOP组件(含源码)

    软件开发,离不开对日志的操作.日志可以帮助我们查找和检测问题,比较传统的日志是在方法执行前或后,手动调用日志代码保存.但自从AOP出现后,我们就可以避免这种繁琐但又必须要实现的方式.本文是在微软企业库 ...

  3. 微软企业库(Microsoft Enterprise Library Data Access Block)

    1. Dynamic-link library Microsoft.Practices.ObjectBuilder.dll Microsoft.Practices.EnterpriseLibrary. ...

  4. 微软企业库是什么_什么是Microsoft团队?适合我的企业吗?

    微软企业库是什么 Microsoft Teams is the company's answer to the need for user-friendly digital collaboration ...

  5. [EntLib]微软企业库5.0 学习之路——第五步、介绍EntLib.Validation模块信息、验证器的实现层级及内置的各种验证器的使用方法——上篇...

    本文是为后面的学习之路做铺垫,简单介绍下企业库中的Validation模块的一些相关知识,包括Validation模块的简介.用途.使用方法.默认提供的多种验证器的介绍等. 一.简介及用途 在实际的项 ...

  6. 微软企业库 简介(转)

    企业库(Enterprise Library)是微软的模式与实践(Patterns & Practices)的下一代应用程序块(Application Blocks).该企业库的设计思想是为了 ...

  7. [EntLib]微软企业库5.0 学习之路——第七步、Cryptographer加密模块简单分析、自定义加密接口及使用—上篇...

    在完成了后,今天开始介绍企业库中的新模块:Cryptographer(加密模块),这个模块在日常的大多数项目的作用非常重要,例如:网站会员密码.身份证号.网站配置等,通过对信息进行加密可以保证项目数据 ...

  8. (转)[EntLib]微软企业库5.0 学习之路——第十步、使用Unity解耦你的系统—PART2——了解Unity的使用方法(1)...

    原文地址:http://www.cnblogs.com/kyo-yo/archive/2010/11/01/Learning-EntLib-Tenth-Decoupling-Your-System-U ...

  9. [EntLib]微软企业库5.0 学习之路——第十步、使用Unity解耦你的系统—PART5——使用Unity自身的拦截器...

    在前一篇文章中,介绍了如何使用Unity来接管PIAB进行拦截操作,而Unity自身也提供了类似于ICallHandler的拦截处理程序--IInterceptionBehavior,今天这篇文章就是 ...

最新文章

  1. mysql 1z0_MySQL 8 OCP(1Z0-908)认证考试题库原题(第10题)
  2. 工厂模式理解_工厂模式
  3. 我是如何成功准备VUE项目之前的开发环境?
  4. python expect_python--pexpect
  5. 收藏 | 那些机器学习必备知识
  6. 集成电路可测性设计DFT技术入门概论--MBIST技术报告
  7. 推荐子龙山人的emacs的教程
  8. 如何用计算机完成一篇文稿制作手写作业,怎样把手写作文快速弄成电子版
  9. 川农《劳动与社会保障法(本科)》21年12月作业考核
  10. 还记得愤怒的小鸟嘛?今天用Python给大家安排一波!
  11. css 右上角 翻开动画_CSS3 transition动画、transform变换、animation动画
  12. 【转】SSL协议、SET协议、HTTPS简介
  13. 金融交易领域之外汇产品
  14. 机器人螺栓拆装_一种带电作业机器人专用螺栓拆装固定装置的制作方法
  15. 直击痛点!有讲究的品质生活好物件,不再让你“家徒四壁”...丨钛空舱
  16. 【读书笔记】AUTOSAR规范与车用控制器软件开发02
  17. 云服务器1和1g装什么系统好,1核1g的云服务器装什么系统好
  18. 面试容易紧张,有哪些小技巧可以缓解紧张呢?
  19. Cordova项目IphoneX适配,结合BUI前端框架项目(需要修改原生代码)
  20. 【D^3CTF】D^3CTF部分题复现

热门文章

  1. 信息安全工程师笔记-数字证书
  2. Java笔记-解决Cause: java.sql.SQLException: 试图在只读事务中修改数据(达梦数据库)
  3. Java笔记-以系统时间为基准15分钟运行一次指定代码
  4. Leaflet文档阅读笔记-Quick Start Guide笔记
  5. Qt文档阅读笔记-windowOpacity官方解析及实例(两种方法使得程序渐变出现)
  6. Qt工作笔记-QVector下标访问和迭代访问效率实践(大跌狗眼)
  7. 7.2图的存储结构(邻接矩阵)
  8. slope one 推荐算法python 代码_基于协同的SlopeOne推荐算法原理介绍和实现
  9. 如何查看linux 日志 磁盘使用情况?
  10. python里的装饰器