標籤:style io os 使用 ar strong 檔案 sp div
文字格式設定說明
可以記載的日誌類別包括: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="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
調用樣本:
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 的使用