2009-09-12 46 views
2

現在,我通過創建RollingFileAppender實例然後調用BasicConfigurator.Configure()以編程方式配置log4net。這很好,但我試圖創建兩個相同的文件 - 一個在爲每次應用程序運行創建的時間戳目錄中,另一個在靜態位置,以便開發人員輕鬆截取最新日誌。 (這隻用於運行自動化測試,因此創建一大堆目錄不是問題)以編程方式配置log4net將相同的消息寫入兩個單獨的文件

理想情況下,我希望這些文件完全相同,但我意識到log4net可能不會使這成爲可能。如果他們有不同的記錄器名稱,那很好 - 只要我可以將一條日誌語句寫入這兩個日誌文件。

我當前的代碼:

IAppender appender = new RollingFileAppender 
{ 
    ... 
} 

appender.ActivateOptions(); 

BasicConfigurator.Configure(appender); 
+0

爲什麼不在配置文件中設置兩個appender,然後使用單獨的配置文件進行測試? – TrueWill 2009-09-12 16:49:12

+0

@TueWill:這些測試使用獨立的.exe以及Powershell cmdlet運行。從Powershell運行時,.config文件中的log4net部分不會被讀取。以編程方式執行此操作允許我們在兩種情況下使用相同的配置。 – 2009-09-12 17:00:28

回答

3

雖然這是完全可以完全做到這一點編程我不喜歡這裏解釋API,它很容易查找。

到目前爲止,最簡單和最靈活的方式是配置兩個appender從配置文件中讀取它。您可以通過調用log4net.Config.XmlConfigurator.Configure()來強制執行此操作,如果要將所有代碼都保存在一起,您甚至可以將XmlElement傳入Configure()。

+1

以編程方式構建XML,然後調用XmlConfigurator變得非常簡單。謝謝。 – 2009-09-15 18:43:37

相關問題