log4j2 включает отладку для определенных c классов из переменной среды - PullRequest
0 голосов
/ 12 февраля 2020

мы развертываем веб-приложение Java в JBoss 7 .. 3 EAP. Нам нужно включить установку уровня отладки для некоторых определенных c классов (например, org.mycompany.mypackage). Как описано здесь: https://logging.apache.org/log4j/2.x/manual/configuration.html просто установка переменной среды

LOG4J_DEBUG

уровень журнала установлен для отладки для всей системы. Интересно, есть ли способ сделать это для определенных c классов / пакетов? Заранее спасибо. R.

1 Ответ

2 голосов
/ 13 февраля 2020

Переменная среды LOG4J_DEBUG не включает ведение журнала отладки для вашего приложения. Он включает ведение журнала отладки для внутренних компонентов Log4j 2. Вы можете установить уровень ведения журнала по умолчанию для своего приложения, указав уровень в Root Logger.

<Loggers>
  <Root leve="info">
    <Appender-Ref ref="Console"/>
  </Root>
</Loggers>

Вы можете изменить это, чтобы уровень по умолчанию мог установить из переменной среды, выполнив:

<Loggers>
  <Root leve="${env:DEFAULT_LEVEL:-INFO}">
    <Appender-Ref ref="Console"/>
  </Root>
</Loggers>

Чтобы установить уровень ведения журнала для определенных c классов или пакетов, используйте файл конфигурации log4j, как описано в этом же разделе. Если вы хотите, чтобы уровни конфигурировались с помощью переменных среды, вы можете сделать это, выполнив что-то вроде:

<Logger name="com.mycorp.myservice.dao" level="${env:DAO_LEVEL:-WARN}"\>

Это будет использовать значение по умолчанию WARN, если переменная среды с именем DAO_LEVEL отсутствует.

...