Log4net(五)— Appenders(记录方式)
Monday, April 30, 2007
原文地址:Appenders
选择和禁止记录请求只是log4net框架的一部份。log4net允许将记录请求输出到不同的目的地。在log4net中,输出目的地叫做Appender(记录方式)。记录方式必须继承log4net.Appenders.IAppender接口。
log4net中定义了下面的记录方式: (链接到英文的log4net SDK)
类型 | 描述 |
把记录通过SQL语句或者存储过程保存到数据库中 | |
把记录进行颜色高亮,并输出到ANSI终端窗口 | |
将记录输出到ASP追踪页面,他们被返回到ASP页面或者追踪页面的底部。 | |
缓存送到子记录器的记录 | |
把记录输出到程序的控制台。事件信息可以输出到标准输出流,也可以输出到标准错误流。事件可以包含为每个等级定义的结构化文本和背景颜色。 | |
把记录输出到程序的控制台。事件信息可以输出到标准输出流,也可以输出到标准错误流。 | |
把记录输出到Windows事件日志 | |
把记录输出到文件系统的文件中 | |
把记录送到子记录器 | |
把记录输出到本地系统日志服务(UNIX) | |
把记录保存到内存缓存中 | |
把时间输出到Windows消息服务,这些消息在用户终端中显示 | |
把记录输出到调试器。如果程序没有调试器,将会输出到系统调试器。如果系统没有调试器并且系统调试器被禁用,记录被忽略 | |
把记录通过UDP网络输出到远程系统记录服务。 | |
通过.NET Remoting把记录输出到远程接收器 | |
把记录输出到文件系统的文件中。RollingFileAppender可以通过配置日期或者文件大小的限制把记录配置输出到多个文件。 | |
把记录发送到制定邮箱地址 | |
把SMTP消息记录到制定目录的文件中,这些文件可已通过像IIS SMTP代理这样的SMTP代理读取和发送 | |
用户通过Telnet连接来获取记录 | |
把记录输出到.NET追踪系统 | |
把记录当成无状态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:
Post a Comment