Почему сообщение журнала не записывало мой файл журнала при запуске тестов Junit?

88
9

У меня есть класс Store, который содержит такие выражения, как "log.info(...)". Я вижу сообщения журнала с файлом журнала, созданным при запуске программы. Однако, когда я запускаю тесты JUnit, файл журнала не будет создан, но я все еще хочу видеть сообщения журнала. Регистратор:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

И мои свойства log4j:

log4j.rootLogger=DEBUG, STDOUT, file

log4j.appender.STDOUT=org.apache.log4j.ConsoleAppender
log4j.appender.STDOUT.layout=org.apache.log4j.PatternLayout
log4j.appender.STDOUT.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=mylogs.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{dd-MM-yyyy HH:mm:ss} %-5p %c{1}:%L - %m%n

Возникают вопросы: как создать файл журнала и вести журнал при запуске тестов Junit?

Редактировать:

Часть свойства тестового журнала:

log4j.rootLogger=ERROR, Console
log4j.logger.play=DEBUG
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d{ABSOLUTE} %-5p ~ %m%n

log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=testlog.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{dd-MM-yyyy HH:mm:ss} %-5p %c{1}:%L - %m%n

спросил(а) 2021-01-25T15:25:24+03:00 4 месяца, 3 недели назад
1
Решение
63

Согласно этой конфигурации, вы, вероятно, ожидаете testlog.log файла testlog.log в корне вашего проекта.

Тем не менее, file не ссылается, поэтому сообщения будут регистрироваться только с помощью Console. Однако ваш rootLogger установлен на уровень ERROR поэтому сообщения ниже этого уровня, такие как DEBUG, INFO или WARN будут отброшены.

Вы можете либо изменить конфигурацию rootLogger, из которой наследуются все rootLogger настроенные rootLogger, как и в других ваших log4j.properties, или определить регистратор для вашего пакета, установив его на DEBUG (или любой другой уровень, который вы хотите), и используйте оба добавляет: log4j.logger.my.package.here=DEBUG, Console, file.

Дополнительные ресурсы для чтения: - log4j v1.2 в - log4j 1.2

PS: Обратите внимание, что иногда Eclipse имеет проблемы с изменениями файловой системы и не обновляет файлы проекта автоматически. Если это произойдет. после запуска теста попробуйте щелкнуть правой кнопкой мыши проект в представлении " Navigator и выбрать "Обновить", затем прокрутите до конца, где находится ваш pom. В качестве альтернативы откройте проводник файлов по вашему выбору, перейдите в корневой каталог проекта на диск, и вы увидите файл testlog.log.

ответил(а) 2021-01-25T15:25:24+03:00 4 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема