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

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 = ;
logEntry.Priority = ;
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

最新文章

  1. angularjs 分页精华代码
  2. HDU5805 NanoApe Loves Sequence (BestCoder Round #86 B)前后缀预处理
  3. jQuery.holdReady()方法用法实例
  4. onblur判断数字
  5. HibernateTemplate类的方法flush()
  6. Tsinghua dsa pa2
  7. poj1182(并查集)
  8. 【NO.3】 c program to caculate and display sum of two matrix
  9. Routing路由
  10. CSS3伪类实现动画旋转效果
  11. javascript实现有限状态机
  12. Linux 进程等待队列
  13. 从Jensen不等式到Minkowski不等式
  14. Java设计模式-单例模式详解(上)
  15. js将时间戳转换为日期类型
  16. 【Static Program Analysis - Chapter 2】 代码的表征之抽象语法树
  17. 《转》推荐几个精致的web UI框架
  18. Android Json 解析
  19. Hibernate Criteria用法大全
  20. UNIX环境编程学习笔记(27)——多线程编程(二):控制线程属性

热门文章

  1. springboot+mybatisplus 测试代码生成
  2. Struts2知识点小结(四)--拦截器与注解开发
  3. c#常用数据库封装再次升级
  4. (暴力碾标算)NOIP模拟赛 宗教仪式
  5. c++stl应用入门
  6. LINUX 启动图形界面和查看运行级别
  7. PHP----composer安装和TP5验证码类
  8. Redis缓存数据库的安装与配置(2)
  9. 开发必备知识点--django项目启动时,url加载之前,执行某个.py文件
  10. go学习笔记-语言指针