2017-02-20 2 views
0

Ich habe folgendesweb.config Transformationen arbeiten nicht für 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>

für die Freigabe Ich mag würde den Dateipfad ändern, aber es funktioniert nicht, hier zu arbeiten scheinen, ist das, was ich in meinem 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>

hier ist das Ergebnis

<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>

Es entfernt den Debug-Teil, wie es sollte, aber es nicht den Dateipfad zu beheben.

Antwort

0

Ich denke, Sie sollten so etwas versuchen.

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

...

`

Wenn Sie den Logger initialisieren, dann

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

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

schließlich nur den Wert in LogLocation ändern. Ich hoffe, das könnte dir helfen. Danke

Verwandte Themen