我的應用程序爲應用程序本身創建一個日誌,記錄它何時被激活,以及應用程序級別發生了什麼。NLog配置API:使用存儲在變量中的佈局
應用程序以'profiles'爲中心 - 用戶加載一個配置文件,告訴應用程序何時/何時/如何/如何。所以我也想爲每個配置文件創建一個日誌,記錄每次運行配置文件時的進度。
目前爲止沒有問題...除了我希望配置文件日誌與配置文件本身一起存儲,所以這意味着我需要動態配置NLog,所以我可以在運行時告訴它fileTarget路徑。
但是,我也想存儲我想使用的標準佈局,作爲NLog.config中的變量;這似乎是從我讀過的內容中看到的一種常見的方法。
然而,在下面的行
fileTarget.Layout = "${myLayout}"
...我得到一個ArgumentException:
LayoutRenderer cannot be found: 'myLayout'
此刻,我的佈局變量只是:
<variable name="myLayout" value="${message}" />
是你不能使用變量來通過API指定佈局嗎?如果是這樣,我會很驚訝。或者我在某個地方出了問題?
該解決方案非常簡單 - 我可以使用手動指定的佈局填充fileTarget.Layout
,但儘管如此,我很想知道Plan A是否可以工作。
呃...修改源代碼或者只是將佈局存儲在應用程序的設置文件中?鑑於時間尺度,這是一件不容易的事情! :)但謝謝你的迴應。 – CJM 2012-03-09 22:57:12
我會做出同樣的選擇,如果我是你(看到我的回覆類似[這裏](http://stackoverflow.com/questions/9523875/how-to-set-nlogs-filename-to-the- process - 啓動 - 日期/ 9524600#9524600))。 – AVIDeveloper 2012-03-09 23:26:08
這個答案不再準確。請參閱下面的答案。 – MarkR 2015-03-18 18:17:26