使用log4net在Visual Studio 2008中创建系统日志

5星 · 超过95%的资源 需积分: 21 22 下载量 31 浏览量 更新于2024-07-28 收藏 413KB DOC 举报
"这篇文档详细介绍了如何在Visual Studio 2008中使用log4net这个强大的开源日志记录组件,以及如何扩展其功能来输出自定义字段。它包括了一个简单使用实例,从添加引用、配置文件设置到日志级别和输出目标的设定。" 在.NET开发中,log4net是一个广泛使用的日志记录工具,因其灵活性和可配置性而备受推崇。它允许开发者以不同级别(如DEBUG、INFO、WARN、ERROR、FATAL等)记录日志,并可将这些日志按照指定格式输出到多种媒介,如控制台、文件、数据库甚至电子邮件。 **1. log4net的简单使用** 使用log4net的第一步是在项目中引入log4net.dll库。这可以通过在解决方案资源管理器中右键点击项目,选择“添加引用”,然后在.NET选项卡中找到log4net进行添加。确保引用的是正确的版本,例如1.2.10.0。 接下来,配置log4net以读取其配置文件。对于控制台应用程序(CS),在`Program.cs`的`Main`方法中调用`log4net.Config.XmlConfigurator.Configure()`;对于Web应用程序(BS),在`Global.asax.cs`的`Application_Start`方法中进行相同操作。另外,也可以在项目的`AssemblyInfo.cs`文件中使用`[assembly: log4net.Config.XmlConfigurator()]`来全局配置。 **2. 配置文件设置** 配置文件通常是`App.config`或`Web.config`的一部分。在配置文件中,定义了日志的输出级别和目的地。例如: ```xml <log4net> <root> <level value="WARN" /> <appender-ref ref="LogFileAppender" /> <appender-ref ref="ConsoleAppender" /> </root> <logger name="testApp.Logging"> <level value="DEBUG" /> </logger> </log4net> ``` 这里的`root`元素设置了默认的日志级别为WARN,并指定了两个日志输出目的地:`LogFileAppender`和`ConsoleAppender`。`logger`元素则可以为特定命名空间或类定义不同的日志级别,如这里设定了名为`testApp.Logging`的模块的日志级别为DEBUG。 **3. 扩展log4net** 除了基本的日志记录,log4net还可以通过自定义布局和过滤器来输出自定义字段。例如,你可以创建自定义的`PatternLayout`来包含额外的上下文信息,或者使用`Filter`来控制哪些日志条目应该被记录。此外,log4net支持多种日志输出目标,如文件、数据库、SMTP邮件,甚至是Windows事件日志。 **4. 高级特性** - **异步日志记录**:log4net允许异步记录日志,这样即使在高负载情况下,日志记录也不会影响应用程序性能。 - **自定义Appenders**:可以创建自己的日志输出实现,满足特定的需求,如将日志发送到远程服务器或第三方日志服务。 - **MDC/NDC**:Mapped Diagnostic Context (MDC) 和 Nested Diagnostic Context (NDC) 提供了存储和检索诊断信息的能力,有助于追踪请求流。 - **配置动态更新**:在运行时,可以动态地更改log4net的配置,无需重启应用程序。 通过以上介绍,开发者可以理解并开始使用log4net进行日志记录,同时了解如何根据项目需求对其进行定制和扩展。log4net的强大和灵活性使得它成为.NET开发中不可或缺的工具之一。
2012-07-25 上传
1、概述 log4net是.Net下一个非常优秀的开源日志记录组件。log4net记录日志的功能非常强大。它可以将日志分不同的等级,以不同的格式,输出到不同的媒介。本文主要是介绍如何在Visual Studio2008中使用log4net快速创建系统日志,如何扩展以输出自定义字段。 2、一个简单的使用实例 第一步:在项目中添加对log4net.dll的引用,这里引用版本是1.2.10.0。 第二步:程序启动时读取log4net的配置文件。 如果是CS程序,在根目录的Program.cs中的Main方法中添加: log4net.Config.XmlConfigurator.Configure(); 如果是BS程序,在根目录的Global.asax.cs(没有新建一个)中的Application_Start方法中添加: log4net.Config.XmlConfigurator.Configure(); 无论BS还是CS程序都可直接在项目的AssemblyInfo.cs文件里添加以下的语句: [assembly: log4net.Config .XmlConfigurator()] 也可以使用自定义的配置文件,具体请参见4.4 关联配置文件。 第三步:修改配置文件。如果是CS程序,则在默认的App.config文件(没有新建一个)中添加内容;如果是BS程序,则添加到Web.config文件中,添加内容一样,这里不再列出。 App.config文件添加内容如下: <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections>
</configSections> <log4net> <root> <level value="WARN" /> <appender-ref ref="LogFileAppender" /> <appender-ref ref="ConsoleAppender" /> </root> <logger name="testApp.Logging"> <level value="DEBUG"/> </logger> <appender name="LogFileAppender" type="log4net.Appender.FileAppender" > <param name="File" value="log-file.txt" /> <param name="AppendToFile" value="true" /> <layout type="log4net.Layout.PatternLayout"> <param name="Header" value="[Header] "/> <param name="Footer" value="[Footer] "/> <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" /> </layout> <filter type="log4net.Filter.LevelRangeFilter"> <param name="LevelMin" value="DEBUG" /> <param name="LevelMax" value="WARN" /> </filter> </appender> <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" > <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" /> </layout> </appender> </log4net> </configuration> 第四步:在程序使用。 log4net.ILog log = log4net.LogManager.GetLogger("testApp.Logging");//获取一个日志记录器 log.Info(DateTime.Now.ToString() + ": login success");//写入一条新log 这样就将信息同时输出到控制台和写入到文件名为“log-file.txt”的文件中,其中“log-file.txt”文件的路径是当前程序运行所在目录;也可以定义为绝对路径,配置如: <param name="File" value="C:/log-file.txt" />就写入C盘根目录下log-file.txt文件中