log4j使用%p显示日志消息

时间:2011-04-11 04:30:38

标签: java log4j

现在对于%p符号的特定日志消息,我将获得调试或错误或警告。谁能告诉我如何只获得前三个字母。例如。只有WAR警告

2 个答案:

答案 0 :(得分:1)

执行子字符串的代码位于org.apache.log4j.helpers.PatternConverter类,format方法:

if(len > max)
    sbuf.append(s.substring(len-max));

如果你想打印出WAR,你应该将PatternConverter类子类化为将format方法更改为if(len > max) sbuf.append(s.substring(0, max)); 方法,如下所示:

PatternLayout#createPatternParser

然后你还应该编写一个新版本的PatternConverter方法,它必须实例化你的{{1}}新版本。

希望这有帮助。

答案 1 :(得分:0)

在log4j 2.x中,您可以从结尾截断:

  

可以通过附加减号来截断   在这段时间之后。在这种情况下,如果最大字段宽度是   8,数据项长十个字符,然后是最后两个   删除数据项的字符。

链接:https://logging.apache.org/log4j/2.x/manual/layouts.html#PatternLayout

因此,在这种情况下,%.-3p应该提供WAR而不是WARNING