Log4net 配置使用总结(一)

博客园里面关于Log4net配置介绍的文章已经很多了,本篇想对Log4net做一个整体、全面的介绍。一来整理一下自己在学习、配置中遇到的一些问题、二来梳理、总结一下这方面的知识。所以下面相当一部分是从官方资料翻译过来,翻译不当之处,还请大家多多指教(http://www.cnblogs.com/kerrycode)。

Log4net 介绍 

Log4net是一个基于.NET开发的一款非常著名的记录日志的开源组件,它是Apache日志服务项目的一部分。从它的官方网址为http://logging.apache.org/上面你可以看到还有log4jJava)、 log4cxxC++)、log4php(Php)其它三种语言的类似项目。旨在提供对应用程序调试和审计目的的跨语言记录服务。

Log4net 版本历史 

Log4net的版本演变历史:

1.2.0 Beta 1

1.2.0 Beta 2

1.2.0 Beta 3

1.2.0 Beta 4

1.2.0 Beta 5

1.2.0 Beta 6

1.2.0 Beta 7

1.2.0 Beta 8

1.2.9 Beta

1.2.10

具体各版本的演变,新特征的、新功能细节,你可以在下面这个url地址里查看

http://logging.apache.org/log4net/release/release-notes.html

Log4net 特征 

概述:

   Log4net是一个帮助开发者把日志文档输出到各种媒介(日志文件、数据库、系统日志等)的工具,在应用程序遇到问题时(比如异常、调试信息等),它的记录信息能够帮助问题的定位。

Ø 支持多种Framework框架

Ø 日志输出形式多样化

Ø 分层记录的架构

Ø XML 配置

Ø 动态配置

Ø Logging Context (不知道怎么翻译好)

Ø 已经验证的架构

Ø 模块化和可扩展设计

Ø 高性能、高度灵活

支持多种framework框架 

log4net 能够运行在和各种ECMA CLI 1.0 兼容的环境中. log4net特定构建了下面各种frameworks框架:

  • Microsoft .NET Framework 1.0 (1.0.3705)
  • Microsoft .NET Framework 1.1 (1.1.4322)
  • Microsoft .NET Framework 2.0 (2.0.50727)
  • Microsoft .NET Compact Framework 1.0
  • Mono 1.0
  • Mono 2.0
  • Microsoft Shared Source CLI 1.0
  • CLI 1.0 Compatible

日志输出形式多样化 


log4net ships with the following appenders (not on all frameworks):
TypeDescription
log4net.Appender.AdoNetAppender Writes logging events to a database using either prepared statements or stored procedures.
log4net.Appender.AnsiColorTerminalAppender Writes color highlighted logging events to a an ANSI terminal window.
log4net.Appender.AspNetTraceAppender Writes logging events to the ASP trace context. These can then be rendered at the end of the ASP page or on the ASP trace page.
log4net.Appender.ColoredConsoleAppender Writes color highlighted logging events to the application's Windows Console.
log4net.Appender.ConsoleAppender Writes logging events to the application's Console. The events may go to either the standard our stream or the standard error stream.
log4net.Appender.EventLogAppender Writes logging events to the Windows Event Log.
log4net.Appender.FileAppender Writes logging events to a file in the file system.
log4net.Appender.LocalSyslogAppender Writes logging events to the local syslog service (UNIX only).
log4net.Appender.MemoryAppender Stores logging events in an in memory buffer.
log4net.Appender.NetSendAppender Writes logging events to the Windows Messenger service. These messages are displayed in a dialog on a users terminal.
log4net.Appender.OutputDebugStringAppender Writes logging events to the debugger. If the application has no debugger, the system debugger displays the string. If the application has no debugger and the system debugger is not active, the message is ignored.
log4net.Appender.RemoteSyslogAppender Writes logging events to a remote syslog service using UDP networking.
log4net.Appender.RemotingAppender Writes logging events to a remoting sink using .NET remoting.
log4net.Appender.RollingFileAppender Writes logging events to a file in the file system. The RollingFileAppender can be configured to log to multiple files based upon date or file size constraints.
log4net.Appender.SmtpAppender Sends logging events to an email address.
log4net.Appender.TelnetAppender Clients connect via Telnet to receive logging events.
log4net.Appender.TraceAppender Writes logging events to the .NET trace system.
log4net.Appender.UdpAppender Sends logging events as connectionless UDP datagrams to a remote host or a multicast group using a UdpClient.

 

分层记录架构

分层记录是一个基于组件开发的理想选择。每个组件都有它自己记录单独测试,这些记录器的属性可能被设置为开发人员需要当与其他组件相结合,组合的每个组件继承的属性决定。人们可以选择性地提高某个组件日志记录级别的优先级不影响其他的组件。这是非常有用的,当您需要一个详细的跟踪其中一个单一的组件与无需其他组件的跟踪信息所有这一切都可以通过配置文件;无需更改代码是必需的。

XML 配置

log4net 的配置可以用XML文件来配置,配置信息也可以嵌入到其它配置文件中(像应用程序的config文件)或单独放置在一个XML文件当中。配置有很好的可读性和容易更新特性的同时,又有很大的灵活性来表达所有配置。另外log4net是可配置编程

动态配置

log4net能够检测它的配置文件的变化并且动态应用配置文件的更改。日志记录级别、日志追加方式、日志显示样式等几乎所有事情都可以在系统运行时调整。在许多例子中,log4net能够诊断应用程序问题而不用终止应用程序进程。它是一款用来诊断已部署应用程序问题非常有价值的工具

Logging Context

log4net能够用来收集上下文数据(系统数据),以一种方式传递给开发者。 GlobalContextThreadContext允许应用程序以附加消息的形式存储到日志数据中。例如, Web服务中,一旦调用者以授权的用户名调用服务时,这个调用者信息就会存储在ThreadContext属性中, 这个属性将会自动记录并且作为同一线程后续日志信息的一部分.

已经验证的框架 

log4net是基于非常成功的log4j日志记录类库开发的,从1996开始,这种流行并且成功的架构,已经被移植到12种语言上.


扫描上面二维码关注我
如果你真心觉得文章写得不错,而且对你有所帮助,那就不妨帮忙“推荐"一下,您的“推荐”和”打赏“将是我最大的写作动力!
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接.
原文地址:https://www.cnblogs.com/kerrycode/p/1982263.html