gpt4 book ai didi

java - 扩展 TriggeringEventEvaluator (log4j) 并在配置中为其提供属性

转载 作者:太空宇宙 更新时间:2023-11-04 08:36:43 24 4
gpt4 key购买 nike

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

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

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

最佳答案

在 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>

关于java - 扩展 TriggeringEventEvaluator (log4j) 并在配置中为其提供属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6186249/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com