Ограничить максимальный размер сообщения в шаблоне 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