Вход в несколько регистраторов одновременно с slf4j и log4j2 регистрирует только один - PullRequest
0 голосов
/ 04 февраля 2019

Я пытаюсь войти в несколько регистраторов одновременно, используя slf4j и log4j2.У меня 2 проблемы.

  1. регистрация ведется, но только для одного регистратора.
  2. если этот регистратор является файлом, то он перезаписывает предыдущее содержимое файла.

Вот содержимоемоего файла .properties:

status = error
dest = err
name = PropertiesConfig

property.filename = mylogfile.log

filter.threshold.type = ThresholdFilter
filter.threshold.level = all

appenders = console,rolling,smtp

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 = mylogfile-%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 = 15

appender.smtp=org.apache.log4j.net.SMTPAppender
appender.smtp.type=smtp
appender.smtp.name=Email
appender.smtp.from=xxxxx@gmail.com
appender.smtp.to=xxxx@gmail.com 
appender.smtp.subject=Log of messages
appender.smtp.bufferSize=512
appender.smtp.smtpProtocol=smtps
appender.smtp.smtpHost=smtp.gmail.com
appender.smtp.smtpPort=465
appender.smtp.filter= error
appender.smtp.smtpPassword=xxxxx
appender.smtp.smtpUsername=xxxxx

loggers = rolling,email

logger.rolling.name = com.axx
logger.rolling.level = debug
logger.rolling.additivity = false
logger.rolling.appenderRef.rolling.ref = RollingFile

logger.email.name = com.axx
logger.email.level = error
logger.email.additivity = false
logger.email.appenderRef.smtp.ref = Email

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

А вот часть зависимостей из файла pom

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.8.0-beta2</version>
</dependency>
 <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-slf4j18-impl</artifactId>
    <version>2.11.1</version>
  </dependency>

Если строка "loggers" выглядит следующим образом:

loggers = rolling,email

Затем я получаю письмо, но в файл журнала ничего не пишется.Если я инвертирую, как это:

loggers = email,rolling

, тогда у меня есть логин в файле, но нет электронной почты.

Моя цель - записать все в файл и отправить ошибки на предопределенную электронную почту.

Все советы и помощь приветствуются.

...