6

在 log4j 2 中,当大小高于指定阈值时,我想修剪写入控制台附加程序的消息的结尾。

我查看了http://logging.apache.org/log4j/2.0/manual/layouts.html#PatternLayout文档,但看不到截断“msg”字段末尾的选项。

"%.1000msg" 将只留下消息的最后1000 个字符。

这对我不利,因为在 Java 中,堆栈跟踪中最内部的帧打印在消息的开头。

任何想法?

4

2 回答 2

9

我想你正在寻找:%.-1000m

这是控制台记录器的完整示例:

<Configuration status="WARN" monitorInterval="60" name="DEVELOPMENT">

  <Properties>
    <Property name="baseDir">logs</Property>
  </Properties>

  <Appenders>
    <Console name="CONSOLE">
      <PatternLayout pattern="%p{length=1} | %-10.-10t | %d{HH:mm:ss,SSS} | %.-1000m (%c{2}:%L) %n"/>
    </Console>    
  </Appenders>

  <Loggers>     
    <Root level="TRACE">
      <AppenderRef ref="CONSOLE" level="DEBUG"/>
    </Root>       
  </Loggers>

</Configuration>
于 2016-03-17T15:48:03.370 回答
2

有趣的。我不认为模式布局目前支持这一点。我建议在 Log4j2 问题跟踪器上提出功能请求:https ://issues.apache.org/jira/browse/LOG4J2

于 2014-12-17T04:15:34.247 回答