日誌信息分類app
1.等級由低到高:debug<info<warn<Error<Fatal;spa
2.區別:線程
debug 級別最低,能夠隨意的使用於任何以爲有利於在調試時更詳細的瞭解系統運行狀態;debug
info 重要,輸出信息:用來反饋系統的當前狀態給最終用戶的;調試
後三個,警告、錯誤、嚴重錯誤,這三者應該都在系統運行時檢測到了一個不正常的狀態。日誌
warn, 可修復,系統可繼續運行下去;code
Error, 可修復性,但沒法肯定系統會正常的工做下去;xml
Fatal, 至關嚴重,能夠確定這種錯誤已經沒法修復,而且若是系統繼續運行下去的話後果嚴重。blog
3.使用utf-8
何時使用 info, warn , error ?
info 用於打印程序應該出現的正常狀態信息, 便於追蹤定位;
warn 代表系統出現輕微的不合理但不影響運行和使用;
error 代表出現了系統錯誤和異常,沒法正常完成目標操做。
LOG4NET的經常使用方式:
首選引用LOG4NET的命名空間:
using log4net;
而後使用配製輸出日誌路徑:
private static ILog _log; private static ILog Log { get { string path = Config_WG.Instance.Log4NetConfigFilePath; //獲取日誌配製文件路徑,我這裏用的是Log4Net.config log4net.Config.XmlConfigurator.Configure(new FileInfo(path)); //定義日誌配製文件路徑
//log4net.Config.XmlConfigurator.Configure(); 若是直接這樣寫,則讀取啓動項目的config
if (_log == null) { _log = log4net.LogManager.GetLogger("Default"); } return _log; } }
配製好日誌文件Log4Net.config:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> </configSections> <log4net> <root> <!-- 1. Fatal:Fatal 2. Error: Fatal+Error 3. Warn: Fatal+Error+Warn 4. Debug: Fatal+Error+Warn+Debug+Info 5. Info: Fatal+Error+Warn+Info 6. All: 全部都記 7. Off: 全都不記 --> <!--<level value="All"/>--> <!--文件形式記錄日誌--> <!--<appender-ref ref="RollingFileAppender" />--> </root> <!--定義輸出到文件中--> <logger name="Default"> <level value="All"/> <appender-ref ref="RollingFileAppender" /> </logger> <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> <!--定義文件存放位置--> <file value="Logs\"/> <appendToFile value="true"/> <rollingStyle value="Date"/> <datePattern value="yyyy\\yyyyMMdd'.txt'"/> <staticLogFileName value="false"/> <param name="MaxSizeRollBackups" value="100"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%newline %n記錄時間:%date %n線程ID:[%thread] %n日誌級別: %-5level %n出錯類:%logger property: [%property{NDC}] - %n錯誤描述:%message%newline %n"/> </layout> </appender> </log4net> </configuration>
如今能夠使用日誌方法了:
Log.Info("xxxxx"); Log.Debug("xxxxx"); Log.Warn("xxxxxx"); Log.Error("xxxxxx"); Log.Fatal("xxxxxx"); Log.Info("xxxxx",ex); Log.Debug("xxxxx",ex); Log.Warn("xxxxxx",ex); Log.Error("xxxxxx",ex); Log.Fatal("xxxxxx",ex);