幾乎所有的大型應用都會有自己的用於跟蹤除錯的API。因為一旦程式被部署以後,就不太可能再利用專門的除錯工具了。然而一個管理員可能需要有一套強大的日誌系統來診斷和修復配置上的問題。
經驗表明,日誌記錄往往是軟體開發週期中的重要組成部分。它具有以下幾個優點:它可以提供應用程式執行時的精確環境,可供開發人員儘快找到應用程式中的 Bug;一旦在程式中加入了Log 輸出程式碼,程式執行過程中就能生成並輸出日誌資訊而無需人工干預。另外,日誌資訊可以輸出到不同的地方(控制檯,檔案等)以備以後研究之用。
Log4net就是為這樣一個目的設計的,用於.NET開發環境的日誌記錄包。Log4Net是Apache開源的應用於.Net框架的日誌記錄工具。它功能強大,可配置性靈活,執行緒安全,對日誌的輸出管理和級別管理方便我們可以從http://logging.apache.org/log4net/download.html上下載最新版本。 然後引用log4net.dll到專案中。
下面我們一起來看一下,新建一個Web應用程式後,如何運用Log4Net進行日誌資訊的記錄,詳細配置如下:
全域性Global 的配置:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
public class Global : System.Web.HttpApplication { private static ILog logger = LogManager.GetLogger(typeof(Global)); protected void Application_Start(object sender, EventArgs e) { log4net.Config.XmlConfigurator.Configure();// 讀取配置檔案初始化log4Net IndexManager.Instance.Start(); } protected void Application_Error(object sender, EventArgs e) { // 異常物件HttpContext.Current.Error logger.Error("程式發生未捕獲異常", HttpContext.Current.Error); } } |
Web.config 的配置:
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 |
<?xml version="1.0"?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> </configSections> <log4net> <!-- Define some output appenders --> <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> <file value="log.txt"/> <!—日誌名稱--> <appendToFile value="true"/> <maxSizeRollBackups value="10"/><!—日誌最大可備份數--> <maximumFileSize value="1024KB"/><!—日誌檔案大小--> <rollingStyle value="Size"/> <staticLogFileName value="true"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/> </layout> </appender> <root> <level value="DEBUG"/> <appender-ref ref="RollingLogFileAppender"/> </root> </log4net> |
在專案中頁面的運用程式碼:
記錄的日誌資訊:
log4Net是一個開源的專案。如果你有更多的需求,可以根據說明文件自己來進行擴充套件,期待大家,有好的用法。一起發出來,和大家一起交流。