2014-09-02 45 views
0

我正在使用城堡記錄器使用log4net進行登錄。這是我的安裝設置。我有名爲log4net.config的配置文件,其中創建了所有log4net設置。溫莎城堡:您如何通過LoggingFacility動態設置log4net filePath

container.AddFacility<LoggingFacility>(
      f => 
       f.LogUsing(LoggerImplementation.Log4net) 
       .WithConfig(Path.Combine(AssemblyDirectory, "log4net.config"))); 
       container.AddFacility<TypedFactoryFacility>(); 

log4net.config文件我有filePath設置爲:

<configuration> 
    <log4net> 
    <appender name="RollingFileCompositeAppender" type="log4net.Appender.RollingFileAppender"> 
     <file value="c:\LoggerFolder\MyLogFile.log" /> 
     ..... 
    </log4net> 
</configuration> 

要使用此,我有​​記錄儀和使用logger.Error("xyz");

一切都可以正常使用。

現在我想在運行時,當用戶定義該路徑時,將日誌文件路徑從「c:\LoggerFolder\MyLogFile.log」更改爲其他內容。

如何在應用程序運行時動態更改此路徑?

回答

0

Log4net在監視模式下使用此語法加載;將會觀察到對配置文件的任何改變,並且配置文件將被重新加載。因此,爲了更改日誌文件路徑,只需更改文件內容即可設置新的日誌文件路徑。

您可以通過手動更改某些設置來觀察此行爲,例如,日誌文件寫入的文件夾名稱

+0

感謝您的關注。我想過(一旦用戶定義了一個新的路徑/文件名,然後打開並修改log4net.config文件來更新filePath)。我唯一擔心的是,如果由於某種原因應用程序無權修改此文件,那麼是什麼。這可能永遠不會發生,但以防萬一。這是我尋找不同解決方案的原因。 – netlogging 2014-09-03 17:52:23