【问题标题】:Configure Log4Net to not use smtp appender if running an a certain machine如果运行某台机器,将 Log4Net 配置为不使用 smtp appender
【发布时间】:2010-10-11 20:07:53
【问题描述】:

当生产代码中出现错误时,我正在设置一个 SMPTAppender 以通过电子邮件发送日志文件。有一些机器,例如本地的测试机器,我不想发送电子邮件。

我尝试在属性过滤器中使用环境变量 COMPUTERNAME,但这不起作用:

<filter type="log4net.Filter.PropertyFilter">
  <Key value="COMPUTERNAME" />
  <StringToMatch value="myComputerName" />
  <Accept value="false" />
</filter>

我在这样的文件追加器中使用了 ComputerName:

<file value="${HOMEDRIVE}\\loggingDirectory\\AppLogFile.${COMPUTERNAME}.log" />

这也没有用(我也没料到):

<filter type="log4net.Filter.PropertyFilter">
  <Key value="${COMPUTERNAME}" />
  <StringToMatch value="myComputerName" />
  <Accept value="false" />
</filter>

有没有办法在属性过滤器中使用环境变量?欢迎提出其他建议。

【问题讨论】:

    标签: log4net environment-variables


    【解决方案1】:

    您使用了错误的键值。 LoggingEvent.Properties 集合由具有“log4net:HostName”签名的 HostName 属性填充。

    您的过滤器应如下所示:

    <filter type="log4net.Filter.PropertyFilter">
        <Key value="log4net:HostName" />
        <StringToMatch value="computerToExclude" />
        <AcceptOnMatch value="false" />
    </filter>
    

    还要注意使用 AcceptOnMatch,而不是 Accept。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-21
      • 1970-01-01
      • 2011-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-19
      相关资源
      最近更新 更多