繁体   English   中英

在log4net配置中使用注册表值

[英]Using registry values in log4net configuration

是否可以在配置文件的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%property不起作用 ...它在配置文件中出现了参数'type =“ log4net.Util.PatternString”'(而不是'%property'之前的'。\\') 。

通过此更改,它可以工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM