Включить / выключить Log4j2 Marker - PullRequest
0 голосов
/ 13 апреля 2020

Я использую маркер Log4j2 под названием "SQL" в различных подмодулях моего монолитного приложения. Я хотел бы знать, есть ли способ включить / отключить этот маркер независимо от уровня регистратора.

В случае, если это невозможно, это будет означать, что мне придется объявить несколько записей регистратора (по одной на суб -module) в моем файле конфигурации log4j2. xml с нужным уровнем для включения / выключения. Вы бы лучше в этом случае?

1 Ответ

1 голос
/ 13 апреля 2020

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

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="MyApp" packages="">
  <MarkerFilter marker="SQL" onMatch="ACCEPT" onMismatch="DENY"/>
  <Appenders>
    <RollingFile name="RollingFile" fileName="logs/app.log"
             filePattern="logs/app-%d{MM-dd-yyyy}.log.gz">
      <PatternLayout>
        <pattern>%d %p %c{1.} [%t] %m%n</pattern>
      </PatternLayout>
      <TimeBasedTriggeringPolicy />
    </RollingFile>
  </Appenders>
  <Loggers>
    <Root level="error">
      <AppenderRef ref="RollingFile"/>
    </Root>
  </Loggers>
 </Configuration>

приведет к тому, что все события журнала с маркером SQL будут регистрироваться независимо от их уровня ведения журнала, поскольку они были приняты фильтром маркеров до того, как какой-либо уровень журнала был оценен. Размещение фильтра под ссылкой appender, logger или appender потребует, чтобы уровень ведения журнала в этих точках оценивался на основе правил конкретного компонента.

...