C#日志扩展包之Microsoft Enterprise Library - Logging Application Block之配置

2 篇文章 0 订阅
2 篇文章 0 订阅

配置Logging Application Block可以使用两种方法:1、使用app.config文件配置,xml编辑器或Enterprise Library Configuration Tool;2、使用编程方式配置。
本文主要介绍使用Enterprise Library Configuration Tool进行配置,这是推荐方式,操作方便,不易出错。

1、下载安装Enterprise Library Configuration Tool

使用NuGet搜索下载并安装。

2、从Visual Studio 启动和使用配置工具

(1)打开一个安装了Logging Application Block的解决方案;
(2)若项目中不没有配置文件,添加配置文件,右击项目->添加->新建项……->应用程序配置文件(名字默认为App.config);
(3)右击App.config,选择Edit configuration file;
(4)Blocks->Adding Logging Settings;
这里写图片描述
(5)点击Logging Settings左侧箭头,将展示可配置的子元素及其配置项,点击右侧扩展箭头,将展示模块属性的配置项。在子元素配置项上点击各自的右侧+号,即可添加相应项,在添加的配置项上右击,可以显示的上下文菜单中选择删除,移动项目等操作。

3、配置Trace Listener(配置工具上显示为Logging Target Listeners)

(1)可以添加的Trace Listener有:Custom(自定义),Email,Event Log,Flat File,Message Queuing,Rolling Flat File,System Diagnostics,WMI,XML,Databaset等;通过点击Logging Target Listeners右侧的+符号即可选择添加项。
(2)Trace Listener配置项
公共项:

  • Name:Trace Listener名,默认为Event Log Trace Listener
  • Formatter Name:指定创建的格式化器名
  • Severity Filter:指定监视的日志事件的严重程序,可选值有All(默认,不过滤任何日志),off(过滤所有日志),Critical(只允许危急事件通过,主要是致命错误或程序崩溃),Error(允许Critical各Error事件通过,Error事件指可恢复错误),Warning(允许Critical、Error、Warning事件通过,Warning事件可指危急和非危急事件),Information(允许Critical、Error、Warning和Information事件通过,Information事件指消息通知事件),Verbose(允许Critical、Error、Warning、Information和Verbose事件通过,Verbose事件是调试信息),ActivityTracing(允许Stop,Start,Suspend,Transfer和Resume通过)
  • Trace Out Options:指定没有配置Text Formatter时的输出项,可以指定CallStack,DateTime,LogicalOperationStack,None,ProcessId,ThreadId和Timestamp
  • Type Name:类型名

Event Log Trace Listener私有项:

  • Log Name:写入日志记录的事件日志的名称,默认为Application
  • Machine Name:日志定稿的计算机名
  • Source Name:日志源,默认为Enterprise Library Logging

Flat File Trace Listener私有项

  • File Name:写入日志的磁盘文件名,默认为Trace.log,可包含环境变量,如%WINDIR%,%TEMP%和%USERPROFILE%,位置可自己指定
  • Message Footer:消息尾标志,默认“-------------”
  • Message Header:消息头标志,默认“-------------”

Rolling Flat File Trace Listener私有项:

  • File Name:若设置了Max Archived Files属性,当文档达到最大存档值时,Trace Listener会删除格式为[file-name].file-extension的文件,为了防止这样,可在File Name名字中附加一个变化量,如[file-name].[additional-name].file-extension
  • Message Footer:“-------------”
  • Message Header:“-------------”
  • Max Archived Files:文件最大保有数(文件个数)
  • File Exists Behavior:该属性决定日志文件到达限值时的操作(限值包括:Roll Interval属性和Roll Size KB属性),若设置为Increment,将创建一个新文件,并通过在原文件名基础上附加时间戳命名,若已存在该名称的文件,将在时间戳后再附加一个数字,并自增该数字直到没有重名文件为止。比如:命名为已存在文件mylog20150818.log,则改为mylog20150818.1.log,若仍然存在重名,则改为mylog20150818.2.log,数字自增直到没有重名文件
  • Roll Interval:何时写入到新日志文件,可选择None,Midnight,Minute,Hour,Day,Month,Week,或Year
  • Roll Size KB:日志文件达到多大时,写入新日志文件,单位KB
  • Timestamp Pattern:新日志文件命名时附加时间戳的格式

4、配置格式化器(Log Message Formatter)

(1)可添加的格式化器有:Binary Log Message、Custom Log Message、Text
(2)模板标记

  • 时间: {timestamp(local:F)}{newline}
  • 类别: {category}{newline}
  • 优先级: {priority}{newline}
  • 事件ID: {eventid}{newline}
  • 标题:{title}{newline}
  • 计算机名: {localMachine}{newline}
  • 程序名: {localAppDomain}{newline}
  • 进程ID: {localProcessId}{newline}
  • 进程名: {localProcessName}{newline}
  • 线程名: {threadName}{newline}
  • 线程ID:{win32ThreadId}{newline}
  • 其他: {dictionary({key} - {value}{newline})}

(3)说明
Timestamp:可包括local:前缀,以使用本地时间,时间:{timestamp(local)}{newline},或时间:{timestamp(local:F)}{newline},使用date/time全格式
以下格式可实现高速格式化

  • 时间:{timestamp(FixedFormatISOInternationalDate}{newline}:将产生格式为yyyy-MM-dd的日期,本地化使用“时间:{timestamp(local:FixedFormatISOInternationalDate}{newline}”
  • 时间:{timestamp(FixedFormatUSDate}{newline}:产生MM/dd/yyyy格式日期,本地化使用“时间:{timestamp(local:FixedFormatDate}{newline}”
  • 时间:{timestamp(FixedFormatTime}{newline}:产生HH:mm:ss.fff格式时间,本地化使用“时间:{timestamp(local:FixedFormatTime}{newline}”

四个高速本地上下文信息(使用缓存值)

  • localAppDomain
  • localMachine
  • localProcessName
  • localProcessId

5、配置Trace Source(Trace Source Categories)

(1)跟踪源主要有两类:类别(categories)和特殊类别(内置三个,见http://blog.csdn.net/jianglgang/article/details/47726107)。
(2)只能添加类别,点击Categories右侧+号添加。
(3)Categories配置属性

  • Name:类别名,默认为Category Source
  • Minimum Severity:(同Trace Listener 的Severity Filter属性)
  • Listeners:指定Trace Listener,能过其右侧+号,可指定多个

6、配置日志过滤器(Filter)

(1)可用于日志过滤的有:Category,Custom Logging,Logging Enabled,Priority。
(2)Category Filter:基于其指定的类别过滤日志

  • Name:过滤器名
  • Categories:类别,可通过其右侧+号指定多个Trace Source中定义的类别
  • Filter Mode:过滤器运作方式,AllowAllExceptedDenied,允许全部,除了被拒绝的(类别定义中的Severity Filter指定),DeniedAllExceptedAllowed,过滤全部,除了被允许通过的

(3)Logging Enabled Filter:提供一个全局开关,用于打开或关闭Logging

  • Name:过滤器名
  • All Logging Enabled:允许所有日志事件,true,允许,false,不允许

(4)Priority Filter:基于指定的优先级过滤日志

  • Name:过滤器名
  • Maximum Priority:允许通过的最大优先级
  • Minimum Priority:允许通过的最小优先级

(5)Custom Logging Filter:自创建类,衍生于LogFilter类

7、配置Logging模块属性(点击Logging Settings右侧箭头)

各属性值:

  • Activity Tracing Enabled:使能活动跟踪
  • Default Logging Category:没有指定类别的日志将使用该类别,默认使用General类别
  • Protection Provider:用于加密日志文件
  • Require Permission:指示是否在部分信任模式下运行程序
  • Revert Impersonation:指示是否退出模拟恢复模式,False为退出。支持配置支持、设计时间支持和可管理支持
  • Warn If No Category Match:如果一条日志中包含的类别未在配置文件中定义,是否将事件发送至内置的三个特殊源中的Logging Errors & Warnings
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值