首页 > 代码库 > 日志插件 log4net 的使用

日志插件 log4net 的使用

文本格式说明

可以记载的日志类别包括:FATAL(致命错误)、ERROR(一般错误)、WARN(警告)、INFO(一般信息)、DEBUG(调试信息)。

文本参数说明

%m(message):输出的日志消息,如ILog.Debug(…)输出的一条消息 
%n(new line):换行 
%d(datetime):输出当前语句运行的时刻 
%r(run time):输出程序从运行到执行到当前语句时消耗的毫秒数 
%t(thread id):当前语句所在的线程ID 等同于 %thread 
%p(priority): 日志的当前优先级别,即DEBUG、INFO、WARN…等 
%c(class):当前日志对象的名称,例如: 
        模式字符串为:%-10c -%m%n 
        代码为: 
        ILog log=LogManager.GetLogger(“Exam.Log”); 
        log.Debug(“Hello”); 
        则输出为下面的形式: 
        Exam.Log       - Hello 
%L:输出语句所在的行号 
%F:输出语句所在的文件名 
%-数字:表示该项的最小长度,如果不够,则用空格填充 
%newline: 错误详情 
%message: 自定义输出信息 
%logger: 类 
%property: 属性

 

以下为个人定义的模板

%n========== 
%n【日志级别】%-5level 
%n【记录时间】%date 
%n【线程编号】[%thread] 
%n【执行时间】[%r]毫秒 
%n【出错文件】%F 
%n【出错行号】%L 
%n【出错的类】%logger 属性[%property{NDC}] 
%n【错误描述】%message 
%n【错误详情】%newline

 

输出示例:

========== 
【日志级别】ERROR 
【记录时间】2012-11-08 15:49:37,625 
【线程编号】[10] 
【执行时间】[180]毫秒 
【出错文件】C:\Users\Administrator\Documents\Visual Studio 2010\Projects\ConsoleApplication5\ConsoleApplication5\Program.cs 
【出错行号】24 
【出错的类】ConsoleApplication5.Program 属性[(null)] 
【错误描述】错误 
【错误详情】 
System.DivideByZeroException: 尝试除以零。 
   在 ConsoleApplication5.Program.Main(String[] args) 位置 C:\Users\Administrator\Documents\Visual Studio 2010\Projects\ConsoleApplication5\ConsoleApplication5\Program.cs:行号 20

========== 
【日志级别】ERROR 
【记录时间】2012-11-08 15:49:37,666 
【线程编号】[10] 
【执行时间】[221]毫秒 
【出错文件】C:\Users\Administrator\Documents\Visual Studio 2010\Projects\ConsoleApplication5\ConsoleApplication5\Program.cs 
【出错行号】28 
【出错的类】ConsoleApplication5.Program 属性[(null)] 
【错误描述】error 
【错误详情】 
System.Exception: 发生了一个异常

 

使用说明:

配置文件:

节点: <configuration>中添加

  <log4net>    <!--定义输出到文件中-->    <appender name="SysAppender" type="log4net.Appender.RollingFileAppender">      <!--日志的路径-->      <file value="http://www.mamicode.com/Logs/Log4Net/" />      <!--是否覆盖,默认是追加true-->      <appendToFile value="http://www.mamicode.com/true"/>      <rollingStyle value="http://www.mamicode.com/Composite"/>      <!--文件名称-->      <DatePattern value="http://www.mamicode.com/yyyy-MM-dd‘.log‘"></DatePattern>      <!--设置无限备份=-1 ,最大备份数为1000-->      <param name="MaxSizeRollBackups" value="http://www.mamicode.com/1000"/>      <!--每个文件的大小-->      <param name="MaximumFileSize" value="http://www.mamicode.com/500KB"/>      <!--名称是否可以更改为false为可以更改-->      <param name="StaticLogFileName" value="http://www.mamicode.com/false"/>      <layout type="log4net.Layout.PatternLayout">        <!--输出格式-->        <conversionPattern value="http://www.mamicode.com/%n=========="/>      </layout>    </appender>    <!--定义输出到控制台命令行中-->    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">      <layout type="log4net.Layout.PatternLayout">        <conversionPattern value="http://www.mamicode.com/%n=========="/>      </layout>    </appender>    <!--定义输出到windows事件中-->    <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">      <layout type="log4net.Layout.PatternLayout">        <conversionPattern value="http://www.mamicode.com/%n=========="/>      </layout>    </appender>    <!--定义日志的输出媒介,下面定义日志以四种方式输出。也可以下面的按照一种类型或其他类型输出。-->    <root>      <!--文件形式记录日志-->>      <appender-ref ref="SysAppender"/>      <!--控制台控制显示日志-->      <appender-ref ref="ConsoleAppender"/>      <!--Windows事件日志-->      <!--<appender-ref ref="EventLogAppender"/>-->      <!-- 如果不启用相应的日志记录,可以通过这种方式注释掉      <appender-ref ref="AdoNetAppender_Access" />      -->    </root>  </log4net>

代码中:

引用

using log4net; 
using System.Reflection

在命名空间中添加[红色的内容]

[assembly: log4net.Config.XmlConfigurator(Watch = true)] 
namespace ConsoleApplication5

调用示例:

using System;using System.Collections.Generic;using System.Text;using log4net;using System.Reflection;[assembly: log4net.Config.XmlConfigurator(Watch = true)]namespace ConsoleApplication5{    class Program    {        static void Main(string[] args)        {            //创建日志记录组件实例            ILog log = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);            //记录严重错误            log.Fatal("严重错误");            log.Fatal("严重错误", new Exception("发生了一个致命错误"));            //记录错误日志            log.Error("错误");            log.Error("错误", new Exception("发生了一个异常"));            //记录警告信息            log.Warn("警告");            log.Error("警告", new Exception("有一个警告信息"));            //记录一般信息            log.Info("一般信息");            log.Error("一般信息", new Exception("发出一个一般信息"));            //记录调试信息            log.Debug("调试信息");            log.Error("调试信息", new Exception("发生了一个调试信息"));            Console.Read();        }    }}

日志插件 log4net 的使用