在Nlog中 也有等級區分
可以根據不同級別,用不同的方式來儲存(例:email,檔案,資料庫....)。
Trace - 追蹤,非常仔細的logs,可能包含大量的訊息,這個級別通常在開發過程中使用。
Debug - 偵錯.比"追蹤"精簡一點的logs, 通常不在開發過程中使用。
Info -
一般資訊,通常在開發過程中使用。
Warn -
警告, 通常用於非關鍵問題 , 這可以回收或可暫時失效
Error - 錯誤信息
Fatal - 很嚴重的錯誤
-------------------------------------------
-------------------------------------------
Log訊息輸出格式
log 訊息的輸出格式,在layout="你要的輸出格式" ==> layout="特殊標記$ {和}" ==> layout =
"${第一個} ${第二個} ${第三個}"
官方網站
https://github.com/NLog/NLog/wiki/Layout-renderers
可以輸出XML,CSV等複雜格式
常用的:
${time} 時間
${asp-session:variable=String} Session
${aspnet-request:cookie=String:serverVariable=String:queryString=Strin:item=String:form=String}
Cookie_ queryString
${basedir} 根目錄
${date} 日期+時間
${level} log等級
${level} log等級
${newline} 換行
${shortdate} yyyy-MM-dd 日期
${shortdate} yyyy-MM-dd 日期
請參考 https://github.com/nlog/NLog/wiki/Layout%20Renderers
--------------------------------------------------------
--------------------------------------------------------
可以輸出log到
log4j、Email、事件檢視器、file文件、資料庫…….
請參考https://github.com/nlog/NLog/wiki/Targets
請參考https://github.com/nlog/NLog/wiki/Targets
-------------------------------------------
引用 config
假設要用引用某一個 config,可以參考下面的程式碼
<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<include ignoreErrors="false" file="${basedir}/QQQQ.config"/>
</nlog>
ignoreErrors 的屬性預設為 false ,就是當檔案沒找到的時候,就會出錯,無法繼續執行。
如果改為 true 就會跳過錯誤 繼續執行。
如果改為 true 就會跳過錯誤 繼續執行。
-------------------------------------------
變數 Variable
用法在於當你使用 variable 設定一個 name 某一個value 可以在 其他地方 共同使用這個變數。
<variable name="var" value="xxx" />
<nlog>
<variable name="logDirectory" value="${basedir}/logs/${shortdate}"/>
<targets>
<target name="file1" xsi:type="File" fileName="${logDirectory}/file1.txt"/>
<target name="file2" xsi:type="File" fileName="${logDirectory}/file2.txt"/>
</targets>
</nlog>
-------------------------------------------
自動重新讀取功能 autoReload
當你的網站長時間上線時, 如果忽然想增加某一個level 級別 ,可以不用停止網站,加上這個屬性,每次紀錄log 時會重新讀取此設定。 <nlog autoReload="true">
...
</nlog>
-------------------------------------------
緩衝 buffering
假設要e-mail時, 設定 buffersize=”10”,表示錯誤訊息累積到10個以後會發送。
<nlog>
<targets>
<default-wrapper xsi:type="BufferingWrapper" bufferSize="100"/>
<target name="f1" xsi:type="File" fileName="f1.txt"/>
<target name="f2" xsi:type="File" fileName="f2.txt"/>
</targets>
<targets>
<default-wrapper xsi:type="AsyncWrapper">
<wrapper-target xsi:type="RetryingWrapper"/>
</default-wrapper>
<target name="n1" xsi:type="Network" address="tcp://localhost:4001"/>
<target name="n2" xsi:type="Network" address="tcp://localhost:4002"/>
<target name="n3" xsi:type="Network" address="tcp://localhost:4003"/>
</targets>
</nlog>
-------------------------------------------
--------------------------------------------
非同步 AsyncWrapper
<targets>
<target name="asyncFile"
xsi:type="AsyncWrapper">
<target name="logfile" xsi:type="File"
fileName="file.txt" />
</target>
</targets>
<rules>
<logger name="*" minlevel="Info"
writeTo="asyncFile" />
</rules>
非同步的另一種寫法:(在上面多加一個 async="true" 就可以了。)
<targets async="true">
...
your targets go here ...
</targets>
-------------------------------------------
輸出單一個log:
<targets>
<target name="logfile" xsi:type="File" fileName="file.txt"
/>
</targets>
<rules>
<logger name="*" minlevel="Info"
writeTo="logfile" />
</rules>
同時輸出多個log:
<targets>
<target name="logfile" xsi:type="File"
fileName="file.txt" />
<target name="console" xsi:type="Console" />
</targets>
<rules>
<logger name="*" minlevel="Trace"
writeTo="logfile" />
<logger name="*" minlevel="Info"
writeTo="console" />
</rules>
----------------------------------------------------------
log 一般資訊
https://github.com/nlog/nlog/wiki/Configuration-file
參考:
mrkt 的程式學習筆記
Will
http://blog.miniasp.com/post/2010/07/18/Useful-Library-NLog-Advanced-NET-Logging.aspx
github
https://github.com/nlog/nlog/wiki
Huan-Lin 學習筆記
http://huan-lin.blogspot.com/2013/08/nlog-configuration-example.html
http://blog.miniasp.com/post/2010/07/18/Useful-Library-NLog-Advanced-NET-Logging.aspx
github
https://github.com/nlog/nlog/wiki
Huan-Lin 學習筆記
http://huan-lin.blogspot.com/2013/08/nlog-configuration-example.html
Xian's 學習筆記
http://blog.developer.idv.tw/2012/12/nlog.html
http://blog.developer.idv.tw/2012/12/nlog.html
HamielKuo記事
http://www.dotblogs.com.tw/c5todo/archive/2013/10/15/124125.aspx
http://www.dotblogs.com.tw/c5todo/archive/2013/10/15/124125.aspx
沒有留言:
張貼留言