【问题标题】:log4net: Use AssemblyInfo.cs variableslog4net:使用 AssemblyInfo.cs 变量
【发布时间】:2014-08-01 12:55:24
【问题描述】:

有没有办法从 log4net 配置标签中访问程序集变量?目前我们指定日志文件夹如下:

  <!-- Setup Rolling Log File to log all information -->
  <appender name="DebugFileAppender" type="log4net.Appender.RollingFileAppender" >
    <file value="${ProgramData}\\MyCompany\\MyProduct\\log\\Debug" />
    <appendToFile value="true"/>
    ....

有没有办法将 MyCompany 和 MyProduct 替换为变量,然后从项目的 AssemblyInfo.cs 文件中读取值?类似于“${ProgramData}”的东西。

我已经看到有关如何设置 log4net 变量的帖子,我可以稍后引用,但我希望在许多项目中重复使用此配置文件,而无需修改代码。

【问题讨论】:

    标签: c# wpf log4net filepath


    【解决方案1】:

    在值属性中使用 %property{propname}。然后在你的启动设置你的属性值:

    GlobalContext.Properties["propname"] = "My Value";
    log4net.Config.XmlConfigurator.Configure();
    

    在配置log4net之前需要这样做(如上图)

    只需重新阅读您的问题,您可能已经看到过类似的内容。不知道您希望它如何在没有一些编码的情况下神奇地工作。

    【讨论】:

    • 这就是我现在所拥有的,但希望有类似 ${ProgramData} 环境变量的东西可以从 AssemblyInfo.cs 文件中解析公司和产品。我已经必须在 AssemblyInfo.cs 中设置此信息,并希望避免每次重复使用代码时都必须更新的另一个属性。
    猜你喜欢
    • 2014-12-08
    • 2015-11-22
    • 2015-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-22
    • 1970-01-01
    • 2023-03-20
    相关资源
    最近更新 更多