Log4net(五)— Appenders(记录方式)

Monday, April 30, 2007

 

原文地址:Appenders

 

选择和禁止记录请求只是log4net框架的一部份。log4net允许将记录请求输出到不同的目的地。在log4net中,输出目的地叫做Appender(记录方式)。记录方式必须继承log4net.Appenders.IAppender接口。

log4net中定义了下面的记录方式: (链接到英文的log4net SDK)

类型

描述

log4net.Appender.AdoNetAppender

把记录通过SQL语句或者存储过程保存到数据库中

log4net.Appender.AnsiColorTerminalAppender

把记录进行颜色高亮,并输出到ANSI终端窗口

log4net.Appender.AspNetTraceAppender

将记录输出到ASP追踪页面,他们被返回到ASP页面或者追踪页面的底部。

log4net.Appender.BufferingForwardingAppender

缓存送到子记录器的记录

log4net.Appender.ColoredConsoleAppender

把记录输出到程序的控制台。事件信息可以输出到标准输出流,也可以输出到标准错误流。事件可以包含为每个等级定义的结构化文本和背景颜色。

log4net.Appender.ConsoleAppender

把记录输出到程序的控制台。事件信息可以输出到标准输出流,也可以输出到标准错误流。

log4net.Appender.EventLogAppender

把记录输出到Windows事件日志

log4net.Appender.FileAppender

把记录输出到文件系统的文件中

log4net.Appender.ForwardingAppender

把记录送到子记录器

log4net.LocalSyslogAppender

把记录输出到本地系统日志服务(UNIX)

log4net.Appender.MemoryAppender

把记录保存到内存缓存中

log4net.Appender.NetSendAppender

把时间输出到Windows消息服务,这些消息在用户终端中显示

log4net.Appender.OutputDebugStringAppender

把记录输出到调试器。如果程序没有调试器,将会输出到系统调试器。如果系统没有调试器并且系统调试器被禁用,记录被忽略

log4net.Appender.RemoteSyslogAppender

把记录通过UDP网络输出到远程系统记录服务。

log4net.Appender.RemotingAppender

通过.NET Remoting把记录输出到远程接收器

log4net.Appender.RollingFileAppender

把记录输出到文件系统的文件中。RollingFileAppender可以通过配置日期或者文件大小的限制把记录配置输出到多个文件。

log4net.Appender.SmtpAppender

把记录发送到制定邮箱地址

log4net.Appender.SmtpPickupDirAppender

把SMTP消息记录到制定目录的文件中,这些文件可已通过像IIS SMTP代理这样的SMTP代理读取和发送

log4net.Appender.TelnetAppender

用户通过Telnet连接来获取记录

log4net.Appender.TraceAppender

把记录输出到.NET追踪系统

log4net.Appender.UdpAppender

把记录当成无状态UDP数据包发送到使用UDP客户端的远程主机或者组。

一个记录器能够使用道中输出方式。

每条记录器允许的记录请求将被输出到记录器所有的记录方式,包括记录器层次结构中上级的记录器的记录方式。换句话说,记录方式具备继承加成的特性。例如,如果在根控制器上增加了一个控制台记录方式,那么所有被允许的记录请求将至少被输出到控制台。如果记录器增加了一个文件记录方式X,所有X和X的后代通过的记录请求将被输出到文件和控制台。可以将记录器的additivity属性标记为false来避免记录方式的集成加成特性。

下面总结了记录方式的加成特性。

记录器X的记录语句将会输出到X和他祖先的所有记录方式。这就是“继承加成”

但是,如果X的祖先Y,设置了additivity属性为false,那么X的的记录将会输出到X到Y(包括X和Y)之间的所有记录方式,但不会输出到Y的祖先的记录方式。

记录器的默认additivity属性为true。

下面是一个例子

记录器名

记录方式

additivity属性

输出目标

备注

root

A1

不适用

A1

root没有继承任何输出方式

x

A-x1, A-x2

true

A1, A-x1, A-x2

x和root的记录方式

x.y

none

true

A1, A-x1, A-x2

x和root的记录方式

x.y.z

A-xyz1

true

A1, A-x1, A-x2, A-xyz1

x, x.y.z和root的记录方式

security

A-sec

false

A-sec

因为additivity属性为false,没有任何记录方式累加

security.access

none

true

A-sec

因为security的additivity属性为false,因此只有security的记录方式

0 COMMENTS: