日志插件 log4net 的使用
文本格式說(shuō)明
可以記載的日志類(lèi)別包括:FATAL(致命錯(cuò)誤)、ERROR(一般錯(cuò)誤)、WARN(警告)、INFO(一般信息)、DEBUG(調(diào)試信息)。
文本參數(shù)說(shuō)明
%m(message):輸出的日志消息,如ILog.Debug(…)輸出的一條消息?
%n(new line):換行?
%d(datetime):輸出當(dāng)前語(yǔ)句運(yùn)行的時(shí)刻?
%r(run time):輸出程序從運(yùn)行到執(zhí)行到當(dāng)前語(yǔ)句時(shí)消耗的毫秒數(shù)?
%t(thread id):當(dāng)前語(yǔ)句所在的線程ID 等同于 %thread?
%p(priority): 日志的當(dāng)前優(yōu)先級(jí)別,即DEBUG、INFO、WARN…等?
%c(class):當(dāng)前日志對(duì)象的名稱(chēng),例如:?
??????? 模式字符串為:%-10c -%m%n?
??????? 代碼為:?
??????? ILog log=LogManager.GetLogger(“Exam.Log”);?
??????? log.Debug(“Hello”);?
??????? 則輸出為下面的形式:?
??????? Exam.Log?????? - Hello?
%L:輸出語(yǔ)句所在的行號(hào)?
%F:輸出語(yǔ)句所在的文件名?
%-數(shù)字:表示該項(xiàng)的最小長(zhǎng)度,如果不夠,則用空格填充?
%newline: 錯(cuò)誤詳情?
%message: 自定義輸出信息?
%logger: 類(lèi)?
%property: 屬性
以下為個(gè)人定義的模板
%n==========?
%n【日志級(jí)別】%-5level?
%n【記錄時(shí)間】%date?
%n【線程編號(hào)】[%thread]?
%n【執(zhí)行時(shí)間】[%r]毫秒?
%n【出錯(cuò)文件】%F?
%n【出錯(cuò)行號(hào)】%L?
%n【出錯(cuò)的類(lèi)】%logger 屬性[%property{NDC}]?
%n【錯(cuò)誤描述】%message?
%n【錯(cuò)誤詳情】%newline
輸出示例:
==========?
【日志級(jí)別】ERROR?
【記錄時(shí)間】2012-11-08 15:49:37,625?
【線程編號(hào)】[10]?
【執(zhí)行時(shí)間】[180]毫秒?
【出錯(cuò)文件】C:\Users\Administrator\Documents\Visual Studio 2010\Projects\ConsoleApplication5\ConsoleApplication5\Program.cs?
【出錯(cuò)行號(hào)】24?
【出錯(cuò)的類(lèi)】ConsoleApplication5.Program 屬性[(null)]?
【錯(cuò)誤描述】錯(cuò)誤?
【錯(cuò)誤詳情】?
System.DivideByZeroException: 嘗試除以零。?
?? 在 ConsoleApplication5.Program.Main(String[] args) 位置 C:\Users\Administrator\Documents\Visual Studio 2010\Projects\ConsoleApplication5\ConsoleApplication5\Program.cs:行號(hào) 20
==========?
【日志級(jí)別】ERROR?
【記錄時(shí)間】2012-11-08 15:49:37,666?
【線程編號(hào)】[10]?
【執(zhí)行時(shí)間】[221]毫秒?
【出錯(cuò)文件】C:\Users\Administrator\Documents\Visual Studio 2010\Projects\ConsoleApplication5\ConsoleApplication5\Program.cs?
【出錯(cuò)行號(hào)】28?
【出錯(cuò)的類(lèi)】ConsoleApplication5.Program 屬性[(null)]?
【錯(cuò)誤描述】error?
【錯(cuò)誤詳情】?
System.Exception: 發(fā)生了一個(gè)異常
使用說(shuō)明:
配置文件:
節(jié)點(diǎn): <configuration>中添加
<log4net><!--定義輸出到文件中--><appender name="SysAppender" type="log4net.Appender.RollingFileAppender"><!--日志的路徑--><file value="Logs/Log4Net/" /><!--是否覆蓋,默認(rèn)是追加true--><appendToFile value="true"/><rollingStyle value="Composite"/><!--文件名稱(chēng)--><DatePattern value="yyyy-MM-dd'.log'"></DatePattern><!--設(shè)置無(wú)限備份=-1 ,最大備份數(shù)為1000--><param name="MaxSizeRollBackups" value="1000"/><!--每個(gè)文件的大小--><param name="MaximumFileSize" value="500KB"/><!--名稱(chēng)是否可以更改為false為可以更改--><param name="StaticLogFileName" value="false"/><layout type="log4net.Layout.PatternLayout"><!--輸出格式--><conversionPattern value="%n========== %n【日志級(jí)別】%-5level %n【記錄時(shí)間】%date %n【線程編號(hào)】[%thread] %n【執(zhí)行時(shí)間】[%r]毫秒 %n【出錯(cuò)文件】%F %n【出錯(cuò)行號(hào)】%L %n【出錯(cuò)的類(lèi)】%logger 屬性[%property{NDC}] %n【錯(cuò)誤描述】%message %n【錯(cuò)誤詳情】%newline"/></layout></appender><!--定義輸出到控制臺(tái)命令行中--><appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender"><layout type="log4net.Layout.PatternLayout"><conversionPattern value="%n========== %n【日志級(jí)別】%-5level %n【記錄時(shí)間】%date %n【線程編號(hào)】[%thread] %n【執(zhí)行時(shí)間】[%r]毫秒 %n【出錯(cuò)文件】%F %n【出錯(cuò)行號(hào)】%L %n【出錯(cuò)的類(lèi)】%logger 屬性[%property{NDC}] %n【錯(cuò)誤描述】%message %n【錯(cuò)誤詳情】%newline"/></layout></appender><!--定義輸出到windows事件中--><appender name="EventLogAppender" type="log4net.Appender.EventLogAppender"><layout type="log4net.Layout.PatternLayout"><conversionPattern value="%n========== %n【日志級(jí)別】%-5level %n【記錄時(shí)間】%date %n【線程編號(hào)】[%thread] %n【執(zhí)行時(shí)間】[%r]毫秒 %n【出錯(cuò)文件】%F %n【出錯(cuò)行號(hào)】%L %n【出錯(cuò)的類(lèi)】%logger 屬性[%property{NDC}] %n【錯(cuò)誤描述】%message %n【錯(cuò)誤詳情】%newline"/></layout></appender><!--定義日志的輸出媒介,下面定義日志以四種方式輸出。也可以下面的按照一種類(lèi)型或其他類(lèi)型輸出。--><root><!--文件形式記錄日志-->><appender-ref ref="SysAppender"/><!--控制臺(tái)控制顯示日志--><appender-ref ref="ConsoleAppender"/><!--Windows事件日志--><!--<appender-ref ref="EventLogAppender"/>--><!-- 如果不啟用相應(yīng)的日志記錄,可以通過(guò)這種方式注釋掉<appender-ref ref="AdoNetAppender_Access" />--></root></log4net>代碼中:
引用
using log4net;?
using System.Reflection
在命名空間中添加[紅色的內(nèi)容]
[assembly: log4net.Config.XmlConfigurator(Watch = true)]?
namespace ConsoleApplication5
調(diào)用示例:
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){//創(chuàng)建日志記錄組件實(shí)例ILog log = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);//記錄嚴(yán)重錯(cuò)誤log.Fatal("嚴(yán)重錯(cuò)誤");log.Fatal("嚴(yán)重錯(cuò)誤", new Exception("發(fā)生了一個(gè)致命錯(cuò)誤"));//記錄錯(cuò)誤日志log.Error("錯(cuò)誤");log.Error("錯(cuò)誤", new Exception("發(fā)生了一個(gè)異常"));//記錄警告信息log.Warn("警告");log.Error("警告", new Exception("有一個(gè)警告信息"));//記錄一般信息log.Info("一般信息");log.Error("一般信息", new Exception("發(fā)出一個(gè)一般信息"));//記錄調(diào)試信息log.Debug("調(diào)試信息");log.Error("調(diào)試信息", new Exception("發(fā)生了一個(gè)調(diào)試信息"));Console.Read();}} }總結(jié)
以上是生活随笔為你收集整理的日志插件 log4net 的使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 充电桩蓝灯闪烁换了一个还是闪
- 下一篇: ASP.NET中进行消息处理(MSMQ)