как сделать log4j для записи в консоль также

Там какой-либо путь состоит в том, чтобы сказать log4j для записи его журнала в файл и в консоль? спасибо там является моими свойствами:

log4j.rootLogger=DEBUG,console,R
log4j.rootLogger=INFO, FILE

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.conversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p - %m%n

log4j.appender.FILE=org.apache.log4j.RollingFileAppender
log4j.appender.FILE.File=log4j.log
log4j.appender.FILE.MaxFileSize=512KB
log4j.appender.FILE.MaxBackupIndex=3
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p - %m%n
59
задан fatnjazzy 1 August 2010 в 17:21
поделиться

1 ответ

Ваше определение корневого регистратора немного запутано. См. Документацию log4j .

Это стандартный файл свойств Java, что означает, что строки обрабатываются как пары ключ = значение. Ваша вторая строка log4j.rootLogger перезаписывает первую, что объясняет, почему вы ничего не видите в приложении console .

Вам необходимо объединить два ваших определения rootLogger в одно. Похоже, вы пытаетесь, чтобы сообщения DEBUG отправлялись в консоль, а сообщения INFO - в файл. У корневого регистратора может быть только один уровень, поэтому вам нужно изменить свою конфигурацию, чтобы у приложений были соответствующие уровни.

Хотя я не проверил, что это правильно, я предполагаю, что это будет выглядеть примерно так:

log4j.rootLogger=DEBUG,console,file
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.file=org.apache.log4j.RollingFileAppender

Обратите внимание, что у вас также есть ошибка в регистре - у вас строчные буквы консоли в одном месте и заглавные буквы в Другая.

69
ответ дан 24 November 2019 в 18:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: