Log4j2 имеет несколько регистраторов, не таких как log4j1 - PullRequest
0 голосов
/ 27 марта 2020

Я недавно обновился с Log4j1 до Log4j2. Мы используем файл свойств в нашем проекте. Я определил только один регистратор в случае Log4j1, как показано ниже.

log4j.rootLogger = DEBUG, logfile

Но в случае Log4j2 я должен определить несколько регистраторов, один для обычного регистратора, а другой для root регистратор. Можно ли определить только один регистратор в Log4j2, как Log4j1.

1 Ответ

0 голосов
/ 27 марта 2020

Вот пример конфигурации прямо с веб-сайта Log4j -

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
  <Appenders>
    <Console name="Console" target="SYSTEM_OUT">
      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
    </Console>
  </Appenders>
  <Loggers>
    <Root level="error">
      <AppenderRef ref="Console"/>
    </Root>
  </Loggers>
</Configuration>

Эта конфигурация имеет только root Logger. Как вы думаете, почему требуется более одного определения Logger?

Для записи приведена конфигурация с использованием синтаксиса свойств с той же веб-страницы. Также отображается только конфигурируемый регистратор root.

status = error
dest = err
name = PropertiesConfig

property.filename = target/rolling/rollingtest.log

filter.threshold.type = ThresholdFilter
filter.threshold.level = debug

appender.console.type = Console
appender.console.name = STDOUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %m%n
appender.console.filter.threshold.type = ThresholdFilter
appender.console.filter.threshold.level = error

appender.rolling.type = RollingFile
appender.rolling.name = RollingFile
appender.rolling.fileName = ${filename}
appender.rolling.filePattern = target/rolling2/test1-%d{MM-dd-yy-HH-mm-ss}-%i.log.gz
appender.rolling.layout.type = PatternLayout
appender.rolling.layout.pattern = %d %p %C{1.} [%t] %m%n
appender.rolling.policies.type = Policies
appender.rolling.policies.time.type = TimeBasedTriggeringPolicy
appender.rolling.policies.time.interval = 2
appender.rolling.policies.time.modulate = true
appender.rolling.policies.size.type = SizeBasedTriggeringPolicy
appender.rolling.policies.size.size=100MB
appender.rolling.strategy.type = DefaultRolloverStrategy
appender.rolling.strategy.max = 5

logger.rolling.name = com.example.my.app
logger.rolling.level = debug
logger.rolling.additivity = false
logger.rolling.appenderRef.rolling.ref = RollingFile

rootLogger.level = info
rootLogger.appenderRef.stdout.ref = STDOUT
...