如何在jmx logger LogConsole中使用Filter Expression?

时间:2014-11-24 07:07:41

标签: java logging log4j monitoring

我正在使用JMX Logger监控java web应用程序.MBean Server连接成功,我看到JMX logger LoggerConsole中的日志,但我不知道如何在loggerconsole中使用Filter Expression。 这是我的配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
  <appender name="console" class="org.apache.log4j.ConsoleAppender">
    <param name="Target" value="System.out"/>
    <layout class="org.apache.log4j.PatternLayout">
      <param name="ConversionPattern" value="%d{ISO8601}%-5p %c{1} - %m%n"/>
    </layout>
  </appender>
  <appender name="jmxlogger" class="jmxlogger.integration.log4j.JmxLogAppender">
    <param name="Threshold" value="ALL"/>
    <param name="ObjectName" value="jmxlogger:type=LogEmitter"/>
    <param name="MBeanServer" value="platform"/>
    <layout class="org.apache.log4j.PatternLayout">
      <param name="ConversionPattern" value="%d{ISO8601} %-5p %c{1} - %m%n"/>
    </layout>
  </appender>

  <root>
    <priority value ="DEBUG" />
    <appender-ref ref="console" />
    <appender-ref ref="jmxlogger" />
  </root>

</log4j:configuration>

enter image description here

现在我的问题是我想过滤原始数据,例如我很高兴我会做什么? 请帮帮我

1 个答案:

答案 0 :(得分:1)

根据JmxLogger的Wiki 1 ,您需要参数FilterExpression。表达式使用MVELcontains运算符非常有用。然后您的appender将如下:

<appender name="jmxlogger" class="jmxlogger.integration.log4j.JmxLogAppender">
    <param name="FilterExpression" value="rawMessage contains 'I am happy!'"/>
    <param name="Threshold" value="ALL"/>
    <param name="ObjectName" value="jmxlogger:type=LogEmitter"/>
    <param name="MBeanServer" value="platform"/>
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d{ISO8601} %-5p %c{1} - %m%n"/>
    </layout>
</appender>

备注

  1. 有关如何使用JmxLogger的快速指南https://code.google.com/p/jmx-logger/wiki/JmxLoggerUsage