Log4j2 ведение журнала в файл и консоль - PullRequest
0 голосов
/ 27 октября 2018

Я использую Log4j2 2.11.1 в моем проекте Java для входа в консоль, а также в текстовый файл.Я инициализирую его следующим образом:

private static Logger logger = LogManager.getLogger(readAllLinks.class);

Я создал файл resources/log4j2.propertie s для установки предпочтений.

name=PropertiesConfig
property.filename = logs
appenders = console, file
appender.console.type = Console
appender.console.name = STDOUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n
appender.file.type = File
appender.file.name = LOGFILE
appender.file.fileName=${filename}/propertieslogs.log
appender.file.layout.type=PatternLayout
appender.file.layout.pattern=[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n
loggers=file
logger.file.level = debug
logger.file.appenderRefs = file
logger.file.appenderRef.file.ref = LOGFILE
rootLogger.level = debug
rootLogger.appenderRefs = stdout
rootLogger.appenderRef.stdout.ref = STDOUT

/logs/propertieslogs.log файл создан в файловой системе, но он пуст.Я попробовал это со всеми уровнями журнала.

1 Ответ

0 голосов
/ 27 октября 2018

В строке rootLogger.appenderRefs = stdout каждая операция записи в журнал отправляется приложению консоли (и вы видите его в стандартном выводе).

Чтобы выполнить запись как в стандартный вывод, так и в файл, используйте

rootLogger.level=debug
rootLogger.appenderRefs=stdout,logfile
rootLogger.appenderRef.stdout.ref=STDOUT
rootLogger.appenderRef.logfile.ref=LOGFILE
...