文本格式说明
可以记载的日志类别包括: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>中添加
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | < log4net > <!--定义输出到文件中--> < appender name="SysAppender" type="log4net.Appender.RollingFileAppender"> <!--日志的路径--> < file value="Logs/Log4Net/" /> <!--是否覆盖,默认是追加true--> < appendToFile value="true"/> < rollingStyle value="Composite"/> <!--文件名称--> < DatePattern value="yyyy-MM-dd'.log'"></ DatePattern > <!--设置无限备份=-1 ,最大备份数为1000--> < param name="MaxSizeRollBackups" value="1000"/> <!--每个文件的大小--> < param name="MaximumFileSize" value="500KB"/> <!--名称是否可以更改为false为可以更改--> < param name="StaticLogFileName" value="false"/> < layout type="log4net.Layout.PatternLayout"> <!--输出格式--> < conversionPattern value="%n========== %n【日志级别】%-5level %n【记录时间】%date %n【线程编号】[%thread] %n【执行时间】[%r]毫秒 %n【出错文件】%F %n【出错行号】%L %n【出错的类】%logger 属性[%property{NDC}] %n【错误描述】%message %n【错误详情】%newline"/> </ layout > </ appender > <!--定义输出到控制台命令行中--> < appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender"> < layout type="log4net.Layout.PatternLayout"> < conversionPattern value="%n========== %n【日志级别】%-5level %n【记录时间】%date %n【线程编号】[%thread] %n【执行时间】[%r]毫秒 %n【出错文件】%F %n【出错行号】%L %n【出错的类】%logger 属性[%property{NDC}] %n【错误描述】%message %n【错误详情】%newline"/> </ layout > </ appender > <!--定义输出到windows事件中--> < appender name="EventLogAppender" type="log4net.Appender.EventLogAppender"> < layout type="log4net.Layout.PatternLayout"> < conversionPattern value="%n========== %n【日志级别】%-5level %n【记录时间】%date %n【线程编号】[%thread] %n【执行时间】[%r]毫秒 %n【出错文件】%F %n【出错行号】%L %n【出错的类】%logger 属性[%property{NDC}] %n【错误描述】%message %n【错误详情】%newline"/> </ 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调用示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | 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(); } } } |
示例程序下载: