2013-01-23 55 views

回答

2

你完全可以創建一個應用程序來存儲和顯示你其他應用程序的所有日誌,但是你可能需要擴展NLog,這就是我爲我的工作場所所做的。例如:

  1. 創建一個通用數據庫,可以根據需要存儲來自NLog和其他類型日誌的所有日誌。

  2. 創建自定義佈局渲染誰創建一個XML與你的日誌信息(我是不使我的系統時嘗試XmlEncode LayoutRenderer,我認爲這將是偉大的現在)

  3. 找到一種方法,通過你的網絡發送你的XML,我使用了Transactionnal MSMQ,但是隻有非事務性目標存在於NLog中,所以我創建了(=複製粘貼原有的增強功能)我自己的目標

  4. 創建一個服務接收您的日誌的XML並將它們插入數據庫中

  5. 最後,創建誰使用數據庫來告訴你在你的環境在

這是一個強大的解決方案,如果你有時間做了什麼事的應用程序。對於我們的生產環境來說,它爲我們節省了很多時間。但是這取決於你所需要的確切

*編輯2013年1月25日:*

對於在應用程序和服務創建自己的日誌中記錄樹:See this post誰解釋如何創建自己的日誌和與

而來的事件源

NLOG還可以創建一個事件源,如果他不存在,但你可以在this post看到應用程序需要讀取權限的關鍵:

HKEY_LOCAL_MACHINE \系統\ CurrentControlSet \服務\事件日誌\安全

或者你可以簡單地運行應用程序作爲管理員。

一旦你創建了自己的日誌和他的事件源,現在可以使用NLOG正常,有了這樣的配置:

<targets> 
    <target xsi:type="EventLog" name="event" layout="${message}" 
      machineName="." log="myLog" source="myEventSource"/> 
</targets> 
<rules> 
    <logger name="myLogger" writeTo="event"/> 
</rules> 

希望它可以幫助

+0

我只是想讓NLog在Windows Eventviewer中的「程序和服務」類別下設置一個日誌。 – Maritim

+0

對不起,我不明白你的問題。您是否嘗試在_「應用程序和服務」_樹中創建個人視圖,並在EventLog目標配置中使用帶有參數_log_的視圖名稱? – rootoz

+0

是的,我已經完成了System.Diagnostiscs庫,但我希望使用NLog而不是System.Diagnostics實現相同的功能 – Maritim