用一个简单的示例说明日志记录组件log4net的使用
本文用来写一个最简单的log4net示例demo,起作用是让大家可以很快的上手log4net且归你所用。
log4net介绍
log4net是一个功能著名的开源日志记录组件。通过它可以将.net应用程序的日志记录到多种介质之中,包括:文件、控制台、window事物日志和数据库中(MS SQL Server、Access、Oracle9i、DB2、SQLite)中,并且我们还可以设置和标示日志的级别等。 和其它大多开源组件一样,log4net也是从Java项目过度而来。log4net来源于java应用中的log4J. 想了解跟多log4net的信息,请登录log4net官方网站;下载最新版本的请点击这里。目前最新的版本是:1.2.11 特点: (1) 开源,源代码可见。 (2)兼容多种.net框架(.Net1.0,2.0,3.0,3.5,4.0) (3)支持多种日志信息输出方式和日志信息格式定制 (4)支持xml动态配置和对整个日志过程配置管理 (5)模块化设计和可扩展性强(接口) (6)具有较高的灵活性和性能 (二)核心组件 log4net的有4种核心组件: (1)logger,记录器 (2)Appender,附着器 (3)Layout,布局 (4)Repository(库)log4net使用
主要分为以下三步: 第一步,下载了最新源码后编译生成一个log4net.dll然后添加引用到我们的示例项目中。 第二步,配置log4net配置文件,请参考如下示例:<?xml version="1.0"?> <configuration> <configSections> <section name="log4net" type="System.Configuration.IgnoreSectionHandler"/> </configSections> <log4net> <!--定义输出到文件中--> <appender name="LogFileAppender" type="log4net.Appender.FileAppender"> <!--定义文件存放位置--> <file value="D:/log4netfile.txt"/> <appendToFile value="true"/> <rollingStyle value="Date"/> <datePattern value="yyyyMMdd-HH:mm:ss"/> <layout type="log4net.Layout.PatternLayout"> <!--每条日志末尾的文字说明--> <footer value="by 木杉"/> <!--输出格式--> <!--样例:2008-03-26 13:42:32,111 [10] INFO Log4NetDemo.MainClass [(null)] - info--> <conversionPattern value="记录时间:%date 线程ID:[%thread] 日志级别:%-5level 出错类:%logger property:[%property{NDC}] - 错误描述:%message%newline"/> </layout> </appender> <!--定义输出到控制台命令行中--> <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender"> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/> </layout> </appender> <root> <!--文件形式记录日志--> <appender-ref ref="LogFileAppender"/> <!--控制台控制显示日志--> <appender-ref ref="ConsoleAppender"/> </root> </log4net> <startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>第三步,编写示例代码,如下代码所示:
using System; using System.Reflection; using log4net; [assembly: log4net.Config.XmlConfigurator(Watch = true)] namespace log4netDemo { class Program { static void Main(string[] args) { //创建日志记录组件实例 ILog myLog = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); //记录错误日志 myLog.Error("error",new Exception("这是一条错误日志")); //记录致命错误 myLog.Fatal("fatal",new Exception("这是一条致命错误")); //记录一般信息 myLog.Info("info",new Exception("这是一条一般信息:其实就是无病呻吟")); //记录一条调试信息 myLog.Debug("debug",new Exception("这个过程就是调试的过程")); //记录警告信息 myLog.Warn("警告:你的程序马上就结束了"); Console.WriteLine("日志记录结束"); Console.ReadKey(); } } }运行结果: note:d盘下对应的日志文件也是有的 ,这里我就不在文章里贴了。