2013-02-26 52 views
5

我有一個使用log4net進行日誌記錄的內部應用程序。我想要在%LOCALAPPDATA%\Vendor\App\application.log生成日誌。不幸的是,log4net改爲創建日誌文件%APPDATA%。這不是一個很大的問題,因爲我們實際上並沒有在這裏使用漫遊配置文件,但是如果我可以避免的話,我不喜歡在代碼中留下小小的特質。如何在Windows XP和7上將log4net配置爲寫入%LOCALAPPDATA%?

有關如何將文件寫入指定位置的任何想法,而無需配置log4net並使用pinvoke獲取XP路徑?

這裏是我的配置文件的附加器部分,如果它的任何幫助:

<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> 
    <file value="${LOCALAPPDATA}\Vendor\App\application.log" /> 
    <appendToFile value="true" /> 
    <rollingStyle value="Size" /> 
    <maxSizeRollBackups value="10" /> 
    <maximumFileSize value="100KB" /> 
    <staticLogFileName value="true" /> 
    <layout type="log4net.Layout.PatternLayout"> 
    <conversionPattern value="%date [%thread] %-5level %logger%newline%message%newline" /> 
    </layout> 
</appender> 

回答

6

如果這是行不通的,這將意味着你的環境變量是錯誤的。

Log4net在處理appdata或localappdata中沒有任何特別之處。它所做的就是調用System.Environment.GetEnvironmentVariables()來返回散列表,並根據返回的值執行替換。