首先到 log4net官方網站下載.
解開以後,到 bin 資料夾下,找適合你用的 assembly file. (p.s. 其實也不用特別找, .Net 與 mono 是通用的, .Net compact framework 與 sccli 我就沒試過了)
接著,視你自己專案的類型,該引用的就引用 (Visual Studio.Net/MonoDevelop/SharpDevelop),該改 Nant build file / Makefile 的就改.
步驟一:
使用 log4net 的第一步,是在你程序一開始的地方,去解析 log4net 的 configuration.
log4net.Config.XmlConfigurator.Configure();
一般性的 Windows form 程序通常是放在 Main 的一開始,而 asp.net 程序通常則是在 global.asax (codebehind 的話就是 global.asax.cs) 的 Application_Start 事件.
步驟二:
接著在你想要進行 log 的類別宣告這一個屬性.
protected static readonly ILog log = LogManager.GetLogger(typeof( your_class_name ));
要當成一般變數來用也行
ILog log = LogManager.GetLogger(typeof( your_class_name ));
步驟三:
最後是在你想要 log 的地方,放置這麼一行
log.Info( "your message here." );
大功告成!!
就這麼簡單.
而 ILog 不只 Info() method 可以操作,還可以有 Debug(), Error(), Fatal(), Warn() 這幾個 method 可用,他們各代表了不同的層級.
層級的區分大致是這樣: Debug < Info < Warn < Error < Fatal
換句話說,當你 Configuration 裡的層級設定為 Debug 的時候,只要你有調用 ILog 的任何一個 method 來 log, 這些訊息都會出現在 log 裡面.
當你 Configuration 裡的層級設為 Warn 的時候,你有調用 Warn(), Error(), Fatal() 這三個 method 來 log 的地方,這些訊息都會出現在 log 裡面.
再來就是 Configuration.
Windows form 的 configuration 檔案通常名稱是 xxx.exe.config, asp.net 的 configuration 檔案則是 web.config
這裡主要放置兩個部份:
- configSection:
<configSections>
p.s.這裡我有一個慘痛的教訓,查了好久,結果發現是打錯字, "log4net.Config" 我打成 "log4net.config",一度我還懷疑是 configuration file 問題,還跑去 trace log4net 的程式 =_=", 如果你確定你都設對了,該設的也都設定了,不妨利用 LogManager.GetRepository 取得 ILoggerRepository,去看 Configured 屬性,如果是 false,表示沒設定到,可以試著檢查大小寫看看.
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections> - log4net, 這邊請參考 log4net Config Examples 會比較快一點.
參考資料:
沒有留言:
張貼留言