網站偵錯紀錄-NLog 如何做Target-NLog設定檔

網站偵錯紀錄-NLog 如何做Target-NLog設定檔

DotBlog 的標籤: , ,

       最近因為專案需要,看到了 有大大整合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