Enterprise Library 6.0 Semantic Logging Application Block Configuration

使用Enterprise Library 6.0的Logging application 模块,配置步骤如下:

1.Nuget 安装 Enterprise Library Logging模块

命令行:Install-package EnterpriseLibrary.Logging.

2.配置文件:

当前基本都是通过Enterprise Library 配置的,但是很不幸,我的总是安装失败,于是自己baidu了一把,然后进行配置,配置如下:

<configSections>
    <section name="loggingConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.LoggingSettings,Microsoft.Practices.EnterpriseLibrary.Logging"/>
  </configSections>
   <loggingConfiguration name="" tracingEnabled="true" defaultCategory="General">
        <listeners>
            <add name="Rolling Flat File Trace Listener" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.RollingFlatFileTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging"
                listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.RollingFlatFileTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging"
                formatter="Text Formatter"  rollInterval="Day" rollSizeKB="1024"  fileName="App_Data/trace.log"
                maxArchivedFiles="10" />
        </listeners>
        <formatters>
            <add type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging"
                template="Timestamp: {timestamp}{newline}
Title:{title}{newline}
Severity:{severity}{newline}
Message: {message}{newline}
Extended Properties: {dictionary({key} - {value}{newline})}"
                name="Text Formatter" />
        </formatters>
        <categorySources>
            <add switchValue="All" name="General">
                <listeners>
                    <add name="Rolling Flat File 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">
            </errors>
        </specialSources>
    </loggingConfiguration>

3.简单封装logger,如下:

 public sealed class LogHelper
    {

        private static LogHelper instance = null;
        static readonly object lockobj = new object();

        public static LogHelper Instance
        {
            get
            {
                if (instance == null)
                {
                    lock(lockobj)
                    {
                        if(instance==null)
                        {
                            instance = new LogHelper();
                        }
                    }
                }
                return instance;
            }
        }

        private LogWriter _logWriter = null;

        private LogHelper()
        {
            LogWriterFactory factory = new LogWriterFactory();
            _logWriter = factory.Create();
        }

        private void LogContent(System.Diagnostics.TraceEventType traceType,string title,string message)
        {
            if(_logWriter.IsLoggingEnabled())
            {
                LogEntry entity = new LogEntry();
                entity.Severity = traceType;
                entity.TimeStamp = DateTime.Now;
                entity.Message = message;
                entity.Title = title;
                _logWriter.Write(entity);

            }
        }

        /// <summary>
        /// log Exception infomation
        /// </summary>
        /// <param name="title">Log title</param>
        /// <param name="ex">Exception</param>
        public  void LogException(Exception ex)
        {
            LogContent(System.Diagnostics.TraceEventType.Error, ex.Message, ex.ToString());
        }
        

4.经过测试,写入日志。

Enterprise Library 可参考官方文档:http://msdn.microsoft.com/zh-cn/library/dn169621.aspx

时间: 2024-10-06 20:05:16

Enterprise Library 6.0 Semantic Logging Application Block Configuration的相关文章

Enterprise Library 6——Using the Logging Application Block

原文参考 http://msdn.microsoft.com/en-us/library/dn440731(v=pandp.60).aspx 一.简介 日志通常满足两个主要的要求:1.监控应用程序性能并提供信息.性能方面,日志可以监控程序内部发生了什么,有时也监控程序外部发生了什么.2.更重要的是用于审计.这种日志可以跟踪用户的行为并且记录用户执行的一系列任务.读取和修改的信息.访问的资源. 日志模块是一个高灵活和可配置的解决方案,它允许以灵活多样的方式创建和存储日志信息于各种位置.分类并过滤信

Enterprise Library 6——Using the Logging Application Block2

原文参考?http://msdn.microsoft.com/en-us/library/dn440731(v=pandp.60).aspx 一.简介 日志通常满足两个主要的要求:1.监控应用程序性能并提供信息.性能方面,日志可以监控程序内部发生了什么,有时也监控程序外部发生了什么.2.更重要的是用于审计.这种日志可以跟踪用户的行为并且记录用户执行的一系列任务.读取和修改的信息.访问的资源. 日志模块是一个高灵活和可配置的解决方案,它允许以灵活多样的方式创建和存储日志信息于各种位置.分类并过滤信

Enterprise Library 5.0 系列教程

1. Microsoft Enterprise Library 5.0 系列教程(一) Caching Application Block (初级) 2. Microsoft Enterprise Library 5.0 系列教程(一) Caching Application Block (高级) 3. Microsoft Enterprise Library 5.0 系列教程(二) Cryptography Application Block (初级) 4. Microsoft Enterpr

Microsoft Enterprise Library 6.0 之 Exception 企业库异常处理

对于企业库异常处理,这里做个简单的介绍和笔记. 环境 VS2012, .NET Framework 4.0, Microsoft Enterprise Library 6.0 准备工作 1. 下载Enterprise Library配置编辑工具:Microsoft.Practices.EnterpriseLibrary.ConfigConsoleV6.vsix. 下载地址:http://www.microsoft.com/en-us/download/details.aspx?id=38789

EntLib6 Logging Application Block 通过CustomTraceListener实现自动按Category建立不同的log文件

对比log4net,EntLib 的可视化配置以及完善的文档实在是占了挺大的优势,但两者在文件日志方面都存在着相同的问题,就是不能根据Category(log4net里面是logger name)自动分类存放(所有的日志都记在一个日志文件里,当查看日志时会相对比较麻烦),如果想实现分类存放,那就需要在config文件里写上一大堆的配置,作为懒人,这肯定是不能接受的,当然是写的越少越好:P 在code之前先描述下设计思路: 首先说下前提,EntLib 的Logging Application Bl

转:Enterprise Library 4.0缓存应用程序块

英文原文:http://msdn.microsoft.com/zh-cn/library/cc511588(en-us).aspx Enterprise Library 缓存应用程序块允许开发人员在应用程序中合并一个局部缓存,它支持内存内的缓存,和可选的可以是数据库存储或独立存储的后端存储.应用程序块可以不做修改 的使用,它提供所有必须的获取.添加和移除缓存数据的功能.可配置的到期和清除策略也是应用程序块的一部分. 在构建企业范围发布的应用程序时,架构和开发人员都要面对许多挑战,缓存可以帮助他们

Enterprise Library 5.0 学习笔记

最近了解了微软提供的企业开发框架Enterprise Library,目前最新版本是6.0,但是不支持FW3.5,所以就学习了5.0的版本,EL5.0支持FW3.5和4.0,官网下载地址是:https://www.microsoft.com/en-us/download/details.aspx?id=15104,将msi文件解压到特定的文件夹就可以有EL5.0的全部dll类库了,EL5.0的文档下载地址是:http://entlib.codeplex.com/releases/view/431

转:Microsoft Enterprise Library 5.0 系列教程(一) Caching Application Block (高级)

http://www.360doc.com/content/13/0918/22/15643_315482318.shtml http://www.360doc.com/content/13/0918/22/15643_315483614.shtml http://www.cnblogs.com/huangcong/archive/2010/05/28/1745909.html http://www.cnblogs.com/happyhippy/archive/2010/08/15/180028

创建自定义的事件接收器-Semantic Logging

创建自定义的事件接收器 Semantic Logging Application Block提供了大量的事件接收器,如Rolling Flat File,SQL Database, 云存储接收器等.这些接收器都实现了IObservable<EventEntry>接口. 有时这些并不能很好的满足客户需求,这时就需要定制事件接收器,比如邮件接收器.短信接收器等. 下面介绍以下如何定制邮件接收器,在特定的事件发生时自动发送邮件给指定的客户. 本文介绍了以下主题: 创建自定义接收器 在进程内使用自定义