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

使用log4net配置中的注册表值

您可以在xml中使用自定义属性,使您的行看起来像:

  <param name="File" value="Logs'%property{RegLogPath}'myLog.log" />

然后在代码中,在配置log4net:之前

     log4net.GlobalContext.Properties["RegLogPath"] = logsFolder;

接受的答案对我不起作用,而是在一个名为"%property{RegLogPath}"的目录中创建日志文件!

也许这个语法不太正确?

编辑:如前所述:log4net%属性不起作用…配置文件中似乎需要参数"type="log4net.Util.PatternString"(但不需要"%属性"之前的".''")。

有了这个改变,它就起作用了。