Apache log4net™ 特性

Apache log4net™ 特性

概述

log4net是一种帮助程序员将日志语句输出到各种输出目标的工具。在应用程序出现问题时,启用日志记录对找到问题是很有帮助的。使用log4net可以在运行时启用日志记录,而无需修改应用程序二进制文件。log4net包的设计使得日志语句可以保留在附带的代码中,而不会产高额的性能开销。因此,日志的速度(或者说不是日志)是至关重要的。

同时,日志输出可能非常庞大,以至于很快就会变得不堪重负。log4net的一个显著特征是分层记录器的概念。使用这些记录器,可以有选择地控制以任意精细度输出的日志语句。

log4net的设计考虑了两个截然不同的目标:速度和灵活性。

特征

  • 对多个框架的支持
  • 输出到多个日志目标
  • 分层日志体系结构
  • XML配置
  • 动态配置
  • 记录运行环境
  • 成熟的体系结构
  • 模块化和可扩展设计
  • 高性能并兼顾灵活性

对多个框架的支持

log4net可以运行在所有与ECMA CLI 1.0兼容的环境中, 并对以下框架有特定的构建

.NET Core 1.0 - using netstandard-1.3
Microsoft® .NET Framework 1.0*
Microsoft .NET Framework 1.1*
Microsoft .NET Framework 2.0
Microsoft .NET Framework 3.5
Microsoft .NET Framework 4.0
Microsoft .NET Framework 4.5
Microsoft.NET Framework3.5 Client Profile
Microsoft.NET Framework4.0 Client Profile
Microsoft .NET Compact Framework 1.0*
Microsoft .NET Compact Framework 2.0*
Mono 1.0*
Mono 2.0
Mono 3.5
Mono 4.0
Microsoft Shared Source CLI 1.0*
CLI 1.0 Compatible

The “Client Profile” builds are stripped down versions of the “normal” builds that don’t contain any ASP.NET releated code - which for example means the %aspnet-* patterns and the AspNetTraceAppender are not available.

“Client Profile”版本是 “normal”版本的简装版, 它不含任何ASP.NET发布代码
-例如,%aspnet-*模式和AspNetTraceAppender都不可用。

不支持二进制发布版, 但可以从源代码编译.

输出到多个日志目标 (Output to multiple logging targets)

log4net 附带下列 appenders (并非所有框架)

log4net.Appender.AdoNetAppender 既可以通过预存语句也可以通过存储过程将日志事件写入数据库
log4net.Appender.AnsiColorTerminalAppender 将高亮彩色显示的日志事件输出到ANSI终端窗口
log4net.Appender.AspNetTraceAppender 将日志事件写入ASP跟踪环境。之后可以在ASP页的末尾或ASP跟踪页上呈现这些内容。
log4net.Appender.ColoredConsoleAppender 将高亮彩色显示的日志事件写入应用程序的Windows控制台。
log4net.Appender.ConsoleAppender 将日志事件写入应用程序的控制台。这些事件即可以输出到标输出流, 也可以输出到标准的错误输出流(error stream)
log4net.Appender.DebugAppender 将日志事件写入.NET系统。
log4net.Appender.EventLogAppender 将日志事件写入Windows事件日志
log4net.Appender.FileAppender 将日志事件写入文件系统中的文件。
log4net.Appender.LocalSyslogAppender 将日志事件写入本地 syslog 服务(仅限于UNIX系统)。
log4net.Appender.MemoryAppender 将日志事件存储在内存缓冲区中。
log4net.Appender.NetSendAppender 将日志事件写入Windows Messenger服务。这些消息显示在用户终端上的对话框中。
log4net.Appender.OutputDebugStringAppender 将日志事件写入调试器。如果应用程序没有调试器,系统调试器将显示字符串。如果应用程序没有调试器并且系统调试器也没有激活,将忽略该消息。
log4net.Appender.RemoteSyslogAppender 使用UDP网络将日志事件写入远程 syslog 服务。
log4net.Appender.RemotingAppender 使用.NET Remoting将日志事件写入远程处理接收器。
log4net.Appender.RollingFileAppender 将日志事件写入文件系统中的文件。可以将 RollingFileAppender 配置为根据日期或文件大小的约束记录到多个文件的模式。
log4net.Appender.SmtpAppender 将日志事件发送到电子邮件地址。
log4net.Appender.SmtpPickupDirAppender 将日志事件发送到电子邮件地址,但将电子邮件写入可配置目录,而不是通过SMTP直接发送。
log4net.Appender.TelnetAppender 客户端通过 Telnet 连接接收日志事件。
log4net.Appender.TraceAppender 将日志事件写入.NET跟踪系统。
log4net.Appender.UdpAppender 使用UdpClient将日志事件作为无连接UDP数据报发送到远程主机或多播组。

可以使用一个特殊的log4net.Appender.ForwardingAppender包装另一个附录,例如附加过滤器。

层级记录器系统是一种适合基于组件的开发的理想方法。每个组件都有自己的记录器。当单独测试时,这些记录器的属性可以根据开发人员的要求进行设置。当与其他组件联合测试时,记录器继承由其它组件综合的属性。可以有选择地提高一个组件的日志记录优先级,而不会影响其他组件。当您只需要从单个组件进行详细跟踪而不将跟踪文件与来自其他组件的消息混在一起时,这是非常有用的。所有这些都可以通过配置文件来完成;不需要进行代码更改。

XML配置

log4net使用XML配置文件进行配置。配置信息可以嵌入到其他XML配置文件(例如应用程序的.config文件)中,也可以放在单独的文件中。该配置易于阅读和更新,同时保留了表达所有配置的灵活性。
或者,log4net可以通过编程方式配置。

动态配置

log4net 可以监视其配置文件内容的更改,并动态应用这些更改。日志记录级别、appenders项目、输出样式以及几乎所有其他配置选项都可以在运行时进行调整。在许多情况下,可以诊断应用程序问题而不用终止有问题的进程。在部署应用程序过程中审查项目时, 它能够成为一个非常有价值的工具。

日志上下文

log4net可用于收集日志上下文数据,其方式对开发人员在日志记录时是透明的。GlobalContext 和 ThreadContext 允许应用程序存储附加到日志消息的上下文数据。例如,在Web服务中,一旦对调用方进行了身份验证,调用方的用户名就可以存储在 ThreadContext 属性中。然后,该属性将作为从同一个线程生成的每个后续日志记录消息的一部分自动记录。

成熟的架构

log4net 基于自1996年以来开发的非常成功的 Apachelog4j™ 日志库。到目前为止,这种流行且经过验证的体系结构已经移植到12种语言。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值