简介
log4net库是Apache log4j框架在Microsoft .NET平台的实现,是一个帮助程序员将日志信息输出到各种目标(控制台、文件、数据库等)的工具。
log4net是Apache软件基金会Apache Logging Services工程的一部分。Apache日志服务工程致力于为程序调试和审计提供跨语言的日志服务。(f:百度百科)
原理
Log4net是基于.NET开发的一款记录日志开源组件。它通过一套XML配置的日志引擎,将日志分不同的等级,分别是:FATAL 、 ERROR、 WARN、 INFO 、 DEBUG、ALL(允许所有的日志请求)和OFF(拒绝所有的日志请求),缺省为DEBUG,前五个是不是很熟悉?可以看到和我们平常在调试应用程序的出错有点类似,在编译器中也会留下如错误、警告之类的提示信息,它们的错误级别在不断的降低。
log4net开源项目结构如图所示:
通过查看源码,log4net主要有5个核心部分组成,分别为Logger,Appenders, Filters, Layouts 和Object Renders,在配置文件中它们以节点的形式出现。
- Logger:主要负责日志的记录,它记录的方式有多种,可以是以文件、数据库、控制台、邮件等多处方式;
- Appenders:主要负责记录日志介质的方式,它的输出方式主要包括:
-
- AdoNetAppender:将日志记录到数据库中。可以采用SQL和存储过程两种方式
-
AspNetTraceAppender:能用ASP.NET中跟踪的方式查看记录的日志。
-
BufferingForwardingAppender:在输出到子Appenders之前先缓存日志事件。
- ColoredConsoleAppender:在终端的窗口写下高亮度的日志事件。
- ConsoleAppender:将日志输出到控制台。
-
- EventLogAppender:将日志写到Windows操作系统的日志中去。
- FileAppender:将日志写到文件中。
- ForwardingAppender:用来为一个Appender指定一组约束。
- MemoryAppender:将日志存到内存缓冲区。
- NetSendAppender:将日志输出到Windows Messenger service,这些日志信息将在用户终端的对话框中显示。
- OutputDebugStringAppender:配置该Appender以向OutputDebugString API写入日志。
- RemotingAppender:通过.NET Remoting将日志写到远程接收端。