【问题标题】:extending TriggeringEventEvaluator (log4j) and supplying properties for it in config扩展 TriggeringEventEvaluator (log4j) 并在配置中为其提供属性
【发布时间】:2011-09-05 09:17:58
【问题描述】:

这个接口被 log4j 中的 SMTPAppender 类使用。 它有一个返回状态的方法(是否触发电子邮件警报)

问题是 我想为 TriggeringEventEvaluator 添加一些功能。 这需要在配置中为 TriggeringEventEvaluator 指定一些额外的字段。

如何将这些字段从 log4j 配置传递到 TriggeringEventEvaluator。 我知道 log4j 为字段调用 setter 方法,但是如何为 TriggeringEventEvaluator 指定字段

【问题讨论】:

标签: java email logging smtp log4j


【解决方案1】:

在 SMTPAppender 元素内定义一个 TriggeringPolicy 元素。 TriggeringPolicy 元素的类是 org.apache.log4j.rolling.FilterBasedTriggeringPolicy。

在 TriggeringPolicy 元素内,定义一个类为 org.apache.log4j.filter.ExpressionFilter 的 'filter' 元素。

然后您可以使用任何您想要的事件字段(以及使用“like”关键字的正则表达式支持)来过滤事件。 Chainsaw 的开发者快照有一个很好的表达式语法教程:http://people.apache.org/~sdeboy

例子:

<appender name="mail" class="org.apache.log4j.net.SMTPAppender">
  <param name="from"   value="[EMAIL PROTECTED]" />
  <param name="to" value="[EMAIL PROTECTED]" />
  <param name="subject" value="Test message" />
  <param name="SMTPHost" value="localhost"/>
  <param name="sendOnClose" value="true"/>
  <triggeringPolicy class="org.apache.log4j.rolling.FilterBasedTriggeringPolicy">
    <filter class="org.apache.log4j.filter.ExpressionFilter">
      <param name="Expression" value="( LOGGER ~= class1 &amp;&amp; MSG ~= test1 ) || ( logger ~= class2 &amp;&amp; MSG like 'TEST2' )"/>
    </filter>
  </triggeringPolicy>
  <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern" value="%-5p %c{2} - %m%n"/>
  </layout>
</appender>

【讨论】:

  • 你能多解释一下吗.. 我想要完成的是我想设置一个可以在一个时间间隔内发送的最大电子邮件限制。所以最大电子邮件限制和时间范围应该在 log4j 配置中指定。并且触发评估者应该根据这些参数来决定是否可以发送邮件。如果超过了发送邮件的限制,triggeringevaluator 应该返回 false。是否可以通过触发策略来完成类似的行为,请提供更多解释。
  • 我相信不能以属性文件格式设置触发策略,只能以 xml 格式设置。您可以编写一个自定义 TriggeringPolicy(它实现 TriggeringEventEvaluator),它跟踪您在 isTriggeringEvent 实现中想要的任何内容,并在适当时返回 true(基于时间、记录事件计数等)。
猜你喜欢
  • 2021-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多