2015-11-19 96 views
1

我試圖簡化我們在多個項目中的log4net配置。模板Log4Net配置

我們有多個服務都可以創建日誌。他們的appender在每個服務app.config中定義。這造成了很多重複。

我想log4net的配置轉移離開這裏,到一個Log4NetConfiguration.config文件,我可以鏈接到由類似於這個問題的答案接受每個項目:

Share log4net configuration across multiple projects

這樣開發時我們只需要在一個地方更改配置 - 但用戶可以根據自己的選擇配置不同的服務日誌文件。

我們從通用實用程序程序集中調用log4net.Config.XmlConfigurator.Configure() - 如何從運行的服務中加載相關版本的Log4NetConfiguration.config?

+0

將文件添加爲鏈接時,它將被視爲本地文件,並將被複制到bin目錄,準備好加載到服務中:謹慎獲取路徑,並將其傳遞給新的'FileInfo'實例,允許你在調用'XmlConfigurator.ConfigureAndWatch(fileInfo)之前檢查文件是否存在' - 如果log4net找不到文件,它不會拋出異常。 – stuartd

回答

1

根據StuartD的評論,它位於bin目錄中。

因此,您可以使用Assembly.GetExecutingAssembly()。位置來獲取與正在運行的應用程序相關的配置文件的位置。

然後按照建議使用XmlConfigurator.ConfigureAndWatch(fileInfo)。