[英]web.config transforms not working for 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>
它應刪除調試部分,但不能修復文件路徑。
我認為您應該嘗試這樣的事情。
`<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));
最后,只需更改LogLocation中的值即可。 希望對您有所幫助。 謝謝
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.