Java-версия Log4j в конце каждой строки трассировки стека - PullRequest
0 голосов
/ 25 сентября 2018

Когда я использую log4j и делаю

log.error("Exception message", ex);

, я вижу что-то вроде этого

на sun.net.www.protocol.http.HttpURLConnection $ HttpInputStream.ensureOpen (HttpURLConnection.java: 3366) ~ [?: 1.8.0_171] at sun.net.www.protocol.http.HttpURLConnection $ HttpInputStream.read (HttpURLConnection.java:3391) ~ [?: 1.8.0_171]

почему я вижу java-версию в конце каждой строки и как мне от нее избавиться?В некоторых строках также будет другая информация, например путь от места запуска сценария.

1 Ответ

0 голосов
/ 26 сентября 2018

При использовании log4j вы предоставляете конфигурацию, которая описывает «шаблон», который описывает, как будет форматироваться каждое «сообщение журнала».Часть этого шаблона может управлять форматом трассировки стека, когда записывается бросаемый объект.Если вы не предоставите явный формат для throwable, он будет использовать формат по умолчанию, который добавляет суффикс версии JVM, как показано в вашем примере.

Вот макет шаблона, который удаляет суффикс по умолчанию.

 <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n %ex{suffix()}"/>

Подробности доступны здесь - https://logging.apache.org/log4j/2.x/manual/layouts.html.

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