2014-10-30 25 views
0

我有一個DLL項目在我的解決方案負責記錄我的其他項目中的事件。現在我正面臨着保存日誌文件的問題。我想將其保存在用戶應用程序數據中(c:\ users \\ AppData \ Local \ .....)WPF與log4net - 保存日誌userappdata

如何在log4net.config文件中訪問該位置?

我有這個在我的DLL項目:提前

static Log() 
     { 
      log4net.GlobalContext.Properties["LogFileName"] = @"d:\fileRelease2"; //log file path 
#if DEBUG 
      log4net.GlobalContext.Properties["LogFileName"] = @"d:\fileDebug2"; //log file path 
#endif 

      FileInfo configFileInfo = new FileInfo("log4net.config"); 

      log4net.Config.XmlConfigurator.ConfigureAndWatch(configFileInfo); 

      log = LogManager.GetLogger(typeof(Log)); 
     } 

感謝。

問候,

=========== EDIT 2 ==========

我已經成功地把我log4net.config是這樣的:

<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender"> 
     <filter type="log4net.Filter.LevelRangeFilter"> 
     <levelMin value="DEBUG" /> 
     <levelMax value="OFF" /> 
     </filter> 

     <param name="AppendToFile" value="true"/> 
     <file value="${AppData}\AppName\Logs\log" /> 
     <staticLogFileName value="false"/> 
     <appendToFile value="true" /> 
     <rollingStyle value="Date" /> 
     <datePattern value=" yyyy-MM-dd&quot;.txt&quot;"/> 

     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date [%thread] %-5level %logger: %message%newline"/> 
     </layout>  
    </appender> 

我現在面臨的問題是,在IDE(VS2013最終)文件夾被創建。當我安裝應用程序(使用Visual Studio項目安裝程序)時,不會創建文件夾/文件。

如果我開始使用它創建的文件夾/文件管理權限的應用程序...

任何想法,爲什麼?

+0

聽起來像您可能需要安裝程序中的自定義操作來創建要保存日誌文件的文件夾?我以前沒有用VS創建過安裝程序,所以我不敢在那裏幫你。 – 2014-10-30 19:14:05

回答

0

使用

log4net.GlobalContext.Properties["LogFileName"] = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "fileRelease2");