2011年7月13日 星期三

[ASP.NET] Nlog:記Log必備的好東西

要瞭解Nlog初步認識一定必須先拜讀保哥的的大作,介紹好用函式庫:NLog - Advanced .NET Logging

當然師傅引進門,詳細的設定就是要靠自己啦...
就如保哥所說的,install之後就有完整的API文件跟範例,
其實不外乎只要把 Nlog.config 設定好,就完成大半的工作了!!!

我的設定主要:
1.存成File的部分,七天回滾一次,自動刪除過期的Log,讓Disk不會被擠爆。
2.寄出Mail的部分,集滿五個拉環才寄出,不會一個Message寄發信,讓我的信箱不被塞爆。

首先附上我的Nlog.config



    
        
        
        
            
        
    

    
        
        
    



Config檔案分成兩大塊,targets 與rules
targets主要是設定Log要紀錄的方式
rules主要則是決定紀錄Log的level與輸出的方式

我的targets的設定針對兩個紀錄方式:File / Mail
針對File的部分,奧妙的地方:
1. layout => 寫入Log的內容 (時間+程式名稱+Message)
2. archive相關 => 以Day切Log檔,最多存7個檔案,超過一週就會被覆蓋
詳細可看官網範例
針對Mail的部分,奧妙的地方:
1.設定SMTP等mail setting是一定要的
2.其中bufferSize則是集滿拉環才寄出,不然將會一個log message就丟出一封信來,當然如果只有兩則message在程式結束後也會mail出來

針對rules就相對簡單易懂了,minlevel就是比你設定的level嚴重的才記log
log level依序越來越嚴重:
  • Trace.log
  • Debug.log
  • Info.log
  • Warn.log
  • Error.log
  • Fatal.log
我的設定就是Debug嚴重度以上的都要紀錄在File中
Warm嚴重度以上的才寄信通知我!!!!


2 則留言:

  1. 跟Log4Net差不多,不過看起來config比較好設定

    回覆刪除
  2. http://ryanfarley.com/blog/archive/2010/05/06/announcing-the-growl-for-windows-target-for-nlog.aspx

    可以玩一下這個,看起來很厲害

    回覆刪除