Ограничить максимальный размер сообщения в шаблоне log4j2

В log4j 2 я хотел бы обрезать конец сообщений, записываемых в консольный аппендер, когда размер превышает указанный порог.

Я просмотрел http://logging.apache.org/log4j/2.0/manual/layouts.html docs, но не вижу возможности обрезать конец поля "msg".

"%.1000msg" оставит только последние 1000 символов сообщения.

Это не очень хорошо для меня, потому что в Java самые внутренние кадры в трассировке стека печатаются в начале сообщения.

Любая идея?

2 ответа

Решение

Я думаю, что вы ищете: %.- 1000м

Вот полный пример для консольного логгера:

<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>

Интересно. Я не думаю, что макет шаблона в настоящее время поддерживает это. Я рекомендую поднять запрос функции на трекере проблем Log4j2: https://issues.apache.org/jira/browse/LOG4J2

Другие вопросы по тегам