2014-03-04 25 views
0

我的log4net配置存儲在位於應用程序根目錄子目錄中的配置文件中。log4net'not working' - 子目錄中的配置

Config\logging.config 

該文件被標記爲屬性爲「始終複製」的應用程序內容。 Additionaly,在我的AssemblyInfo.cs,我已經聲明瞭以下行:

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Config\\logging.config", Watch = true)] 

然而,log4net的不記錄任何東西,它看起來並不像它的初始化。我如何告訴log4net我的配置文件在哪裏,以便它可以正確初始化它的組件?

+0

來自文檔:如果使用配置屬性,則必須調用log4net以允許其讀取屬性。對LogManager.GetLogger的簡單調用將導致調用程序集上的屬性被讀取和處理。因此,在應用程序啓動過程中儘可能早地進行日誌記錄調用是必要的,當然,在任何外部程序集加載和調用之前也是如此。 –

+0

@MihaiHantea是的,LogManager.GetLogger通過LogFactory被調用。 – Acrotygma

+0

我只是檢查它並且工作正常,即使配置文件位於子目錄中,如果您使用這種類型的appender,也需要有權寫入文件,請嘗試將記錄器放在啓動應用程序的相同類中program.cs,app.xaml,等等)。 –

回答

2

Log4Net旨在無故障地失敗,理由是沒有日誌記錄比取消應用程序更好。

log4net的大多數問題(根據我的經驗)與文件和權限問題有關。

  • 您的應用程序運行的帳戶是否具有對整個配置文件路徑的讀取權限?

  • 「當前工作目錄」是您認爲在加載log4net配置文件時的情況嗎?

要找出潛在的問題是什麼,使用的log4net的internall調試: