log4j отображает сообщения журнала, используя% p - PullRequest
3 голосов
/ 11 апреля 2011

теперь для конкретного сообщения журнала для знака% p я получу либо отладку, либо ошибку или предупреждение.может кто-нибудь сказать мне, как получить только первые три буквы.например.только WAR для предупреждения

Ответы [ 2 ]

1 голос
/ 11 апреля 2011

Код, выполняющий подстроку, находится в 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.

Надеюсь, это поможет.

0 голосов
/ 29 декабря 2016

В log4j 2.x вы можете усечь с конца:

Усечение с конца возможно, если добавить символ минус сразу после точки.В этом случае, если максимальная ширина поля равна восьми, а длина элемента данных составляет десять символов, последние два символа элемента данных удаляются.

Ссылка: https://logging.apache.org/log4j/2.x/manual/layouts.html#PatternLayout

Так что в этом случае %.-3p должно дать WAR вместо WARNING.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...