使用log4net配置中的注册表值
本文关键字:注册表 log4net 配置 使用 | 更新日期: 2023-09-27 18:22:17
是否可以在配置文件的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>
您可以在xml中使用自定义属性,使您的行看起来像:
<param name="File" value="Logs'%property{RegLogPath}'myLog.log" />
然后在代码中,在配置log4net:之前
log4net.GlobalContext.Properties["RegLogPath"] = logsFolder;
接受的答案对我不起作用,而是在一个名为"%property{RegLogPath}"的目录中创建日志文件!
也许这个语法不太正确?
编辑:如前所述:log4net%属性不起作用…配置文件中似乎需要参数"type="log4net.Util.PatternString"(但不需要"%属性"之前的".''")。
有了这个改变,它就起作用了。