2017-02-20 23 views
0

我有以下web.config中變換工作不適合log4net的

<log4net debug="true"> <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> <file value="D:\projects\Code\log.txt" /> <appendToFile value="true" /> <rollingStyle value="Size" /> <maxSizeRollBackups value="10" /> <maximumFileSize value="10MB" /> <staticLogFileName value="true" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n" /> </layout> </appender> <root> <level value="DEBUG" /> <appender-ref ref="RollingLogFileAppender" /> </root> </log4net>

用於釋放我想改變的文件路徑,但它似乎沒有工作,這是我在我的web.release.config

<log4net xdt:Transform="RemoveAttributes(debug)" > <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> <file value="c:\temp.txt" xdt:Transform="Replace" xdt:Locator="Match(value)" />
</appender> </log4net>

這裏是結果

<log4net> <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> <file value="D:\projects\Code\log.txt" /> <appendToFile value="true" /> <rollingStyle value="Size" /> <maxSizeRollBackups value="10" /> <maximumFileSize value="10MB" /> <staticLogFileName value="true" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n" /> </layout> </appender> <root> <level value="DEBUG" /> <appender-ref ref="RollingLogFileAppender" /> </root> </log4net>

它刪除調試部分,因爲它應該但它沒有修復文件路徑。

回答

0

我想你應該嘗試這樣的事情。

`<log4net> 
    <appender name="InfoRollingLogFileAppender" type="log4net.Appender.RollingFileAppender,log4net"> 
    <file type="log4net.Util.PatternString" value="%property{ProgramDataPath}\errorLog" />  

...

`

當初始化記錄,然後

var path = ConfigurationManager.AppSettings["LogLocation"]; 
     // Directory.SetCurrentDirectory(path); 
     GlobalContext.Properties["ProgramDataPath"] = path; 
     XmlConfigurator.Configure(); 

     log = LogManager.GetLogger(typeof(Logger)); 

最後只是更改日誌位置值。 我希望這可以幫助你。謝謝