是否可以将注册表值放在配置文件中的log4net文件名中? 例如,像这样:
<log4net>
<appender name="MainLog" type="log4net.Appender.RollingFileAppender">
<param name="Encoding" value="Unicode" />
<param name="File" value="Logs\{Some-Registry-Value}\myLog.log" />
<param name="AppendToFile" value="false" />
<maximumFileSize value="50MB" />
<maxSizeRollBackups value="20" />
<rollingStyle value="Size"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d %-5p [%t] %logger - %m%n%exception" />
</layout>
</appender>
答案 0 :(得分:1)
您可以在xml中使用自定义属性,以便您的行看起来像:
<param name="File" value="Logs\%property{RegLogPath}\myLog.log" />
然后在代码中,在配置log4net之前:
log4net.GlobalContext.Properties["RegLogPath"] = logsFolder;
答案 1 :(得分:0)
接受的答案对我不起作用 - 而是在一个字面上命名为&#34;%property {RegLogPath}&#34;的目录中创建日志文件。
也许这种语法不太合适?
修改强>: 如上所述:log4net %property does not work ...它出现参数&#39; type =&#34; log4net.Util.PatternString&#34;&#39; (但在配置文件中不需要&#39;。\&#39;%&#39;%属性&#39;)。
通过此更改,它可以正常工作。