網站偵錯紀錄-NLog 如何做Target-NLog設定檔
最近因為專案需要,看到了 有大大整合NLog 到 Elmah(參考網址:http://bibby.be/2012/08/nlog-elamh.html )之後,
就動手做Target,並將資料寫成Elmah的XML格式不過遇到了些問題,哈~ 結果在看了原廠文件後,才知道了下面
的眉眉角角,現在趁記憶好,快點寫下來囉~ 不過我先寫如何做Target,但這篇會寫Nlog的設定。
動作分解如下:
先前準備:
1. 開個ASP.NET Web應用程式專案
2. 網站專案用NuGet安裝NLog(及其設定檔) 和 Elmah
3. 另外開個類別專案,命名為XXX
接下來 因為NLog會去讀NLog.config來知道要如何寫Log,故我們這邊開始進行設定NLog.Config,
而NLog設定檔設定檔說明如下:
1. 擴充: 定義要Ref的dll叫甚麼名稱。
<add assembly="NlogTargetElmahXML" />
</extensions>
2. 目標: 對應到哪一個Class,並可以給予資訊,如LogPathName的值就會傳到被呼叫的class內。
<target name="elmah" xsi:type="Elmah" LogPathName="ElmahLogPath"/>
</targets>
3. 規則: 設定Log紀錄的等級,要對應到的target。
<logger name="*" minlevel="Trace" writeTo="elmah" />
</rules>
完整設定檔如下:
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!--
See http://nlog-project.org/wiki/Configuration_file
for information on customizing logging rules and outputs.
-->
<extensions>
<add assembly="NlogTargetElmahXML" />
</extensions>
<targets>
<target name="elmah" xsi:type="Elmah" LogPathName="ElmahLogPath"/>
</targets>
<rules>
<logger name="*" minlevel="Trace" writeTo="elmah" />
</rules>
</nlog>
參考資料:
1. NLog 到 Elmah : http://bibby.be/2012/08/nlog-elamh.html
2. How to write a target : https://github.com/nlog/NLog/wiki/How%20to%20write%20a%20Target