与SMTPAppender我只收到ERROR而不是INFO类型的日志项目 [英] with SMTPAppender I receive only ERROR and not INFO type of log items

查看:183
本文介绍了与SMTPAppender我只收到ERROR而不是INFO类型的日志项目的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

 < appender name =AdministratorEmailclass =org .apache.log4j.net.SMTPAppender> 
< param name =Thresholdvalue =info/>
< param name =BufferSizevalue =512/>
< param name =SMTPHostvalue =smtp.sss.intranet/>
< param name =Fromvalue =adminEbookMaker@sss.intranet/>
< param name =Tovalue =user@sss.it/>
< param name =Subjectvalue =errors/>
< layout class =org.apache.log4j.PatternLayout>
< param name =ConversionPatternvalue =[%d {ISO8601}]%n%n%-5p%n%n%c%n%n%m%n%n/>
< / layout>
< filter class =org.apache.log4j.varia.LevelRangeFilter>
< param name =LevelMinvalue =info/>
< param name =LevelMaxvalue =fatal/>
< / filter>
< / appender>

我只收到错误日志类型,而不是INFO类型!我更改了 LevelMin ,但是没有,我插入了 Thresold ,但没有!



有人有任何建议吗?

解决方案

SMTPAppender通过设计只记录错误和上面的消息。此级别不受属性影响。附加文件的文档:


默认情况下,当附加错误或更高级别的消息时,将发送电子邮件消息。触发条件可以通过使用实现TriggeringEventEvaluator的类的名称设置evaluateatorClass属性来进行修改,使用TriggeringEventEvaluator的实例设置evaluateator属性或者嵌套一个triggerPolicy元素,其中指定的类实现TriggeringEventEvaluator


< blockquote>

请参阅:类SMTPAppender



只有在第一个ERROR之后才看到INFO消息的事实是由于bufferSize属性显示最新日志行之前的n错误给上下文的错误。



进一步的研究表明,在extras companion中有一个TriggerEventEvaluator所需的接口实现



这可以从以下网址下载: Apache下载镜像



如果将其包含在项目中,则可以将以下内容添加到log4j.xml中的SMTPAppender定义中(注意属性格式不支持!)

 < appender name =SMTPclass =org.apache.log4j .net.SMTPAppender> 
...
< triggeredPolicy class =org.apache.log4j.rolling.FilterBasedTriggeringPolicy>
< filter class =org.apache.log4j.filter.LevelRangeFilter>
< param name =levelMinvalue =INFO/>
< / filter>
< / triggeredPolicy>
...
< / appender>


I've configured an SMTPAppender into my Java app.

<appender name="AdministratorEmail" class="org.apache.log4j.net.SMTPAppender">
  <param name="Threshold" value="info" />
  <param name="BufferSize" value="512" />
  <param name="SMTPHost" value="smtp.sss.intranet" />
  <param name="From" value="adminEbookMaker@sss.intranet" />
  <param name="To" value="user@sss.it" />
  <param name="Subject" value="errors" />       
  <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern" value="[%d{ISO8601}]%n%n%-5p%n%n%c%n%n%m%n%n" />
  </layout>
  <filter class="org.apache.log4j.varia.LevelRangeFilter">
    <param name="LevelMin" value="info" />
    <param name="LevelMax" value="fatal" />
  </filter>
</appender>

I receive only the ERROR log type and not the INFO type! I changed the LevelMin but nothing, I inserted the Thresold, but nothing!

Does someone have any kind of suggestion?

解决方案

The SMTPAppender by design only logs ERROR and above messages. This level cannot be affected by properties. The documentation for the appended states:

By default, an email message will be sent when an ERROR or higher severity message is appended. The triggering criteria can be modified by setting the evaluatorClass property with the name of a class implementing TriggeringEventEvaluator, setting the evaluator property with an instance of TriggeringEventEvaluator or nesting a triggeringPolicy element where the specified class implements TriggeringEventEvaluator

See: Class SMTPAppender

The fact that you are seeing INFO messages only after the first ERROR is due to the bufferSize property which shows the 'n' most recent log lines before the error to give context to the error.

Further research on this shows that there is an implementation of the required interface for TriggerEventEvaluator in the 'extras companion'

This can be downloaded from: Apache Download Mirrors

If you include this in your project you can then add the following to your SMTPAppender definition in log4j.xml (note the properties format is not supported!)

  <appender name="SMTP" class="org.apache.log4j.net.SMTPAppender">
...
    <triggeringPolicy  class="org.apache.log4j.rolling.FilterBasedTriggeringPolicy">
      <filter class="org.apache.log4j.filter.LevelRangeFilter">
        <param name="levelMin" value="INFO" />
      </filter>
    </triggeringPolicy>
...
  </appender>

这篇关于与SMTPAppender我只收到ERROR而不是INFO类型的日志项目的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆