通过匹配模式过滤日志-log4j [英] Filter log by matching pattern - log4j

查看:440
本文介绍了通过匹配模式过滤日志-log4j的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的log4j xml文件中具有以下布局模式:

I have the following layout patter in my log4j xml file:

"%d{ISO8601} %c %p [%t] [%x] 9.5.4.RC12 %m%n"

我想要的是,当我收到包含消息process [proc#] completed的日志时,应该将其跳过.我的意思是除包含此消息的日志外,所有日志均应打印. [proc#]将包含最大长度为4的进程号. 我可以在xml配置文件中使用此功能来设计过滤器.如果是这样,那怎么办?

What I want is that when ever I get a log containing message process [proc#] completed, it should be skipped. I mean every log except the one containing this message should be printed. [proc#] will contain the process number of max lenght 4. What can I desing a filter with this function in my xml config file. If so, then how?

推荐答案

ExpressionFilter可以做到这一点.

ExpressionFilter can do that.

在附加程序定义内的过滤器定义中,使用类似于以下的表达式(请注意,LIKE是正则表达式匹配运算符):

In a filter definition inside an appender definition, use an expression similar to (note LIKE is the regex match operator):

"MSG LIKE'进程\ [.* \]已完成'"

"MSG LIKE 'process \[.*\] completed'"

在此处查看ExpressionFilter javadoc:

See ExpressionFilter javadoc here:

http://logging.apache .org/log4j/companions/apidocs/org/apache/log4j/filter/ExpressionFilter.html

示例:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
    <appender name="CONSOLE">
        <param name="Target" value="System.out"/>
        <layout>
            <param name="ConversionPattern" value="%d %p [%c] - %m%n"/>
        </layout>
        <filter class="org.apache.log4j.filter.ExpressionFilter">
            <param name="expression" value="EXCEPTION ~= com.company.BackendNotAvailableException" />
            <param name="acceptOnMatch" value="false"/>
        </filter>
    </appender>
    <root>
        <priority value ="INFO" />
        <appender-ref ref="CONSOLE"/>
    </root>
</log4j:configuration>

从此处获取的示例: http ://blog.trifork.com/2011/08/23/filtering-specific-exceptions-when-using-log4j/

这篇关于通过匹配模式过滤日志-log4j的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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