#spring-boot #logback #spring-logback
#весенняя загрузка #возврат в систему #spring-logback
Вопрос:
Я создал тестовый проект с Spring Boot, чтобы узнать об использовании logback-spring.xml файл. Я хочу использовать настройку Spring по умолчанию для записи в консоль, поэтому я использую следующую строку
<include resource="org/springframework/boot/logging/logback/base.xml" />
И я также хочу регистрироваться в файле на постоянной основе и сохранять максимальное количество файлов журнала в системе. Запись в консоль работает как ожидалось. Однако журналы не записываются в файл журнала. Создается папка с именем «logs» и файл «logfile.также создается журнал». Но в него ничего не записывается.
Ниже приведена заливка logback-spring.xml файл
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/base.xml" />
<property name="LOG_PATH" value="logs" />
<property name="LOG_ARCHIVE" value="${LOG_PATH}/archive" />
<appender name="File-Appender" class="ch.qos.logback.core.FileAppender">
<file>${LOG_PATH}/logfile.log</file>
<encoder>
<pattern>%d{dd-MM-yyyy HH:mm:ss.SSS} %magenta([%thread]) %highlight(%-5level) %logger{36}.%M - %msg%n</pattern>
<outputPatternAsHeader>false</outputPatternAsHeader>
</encoder>
</appender>
<logger name="test" level="DEBUG" />
</configuration>
и ниже приведено тестовое приложение.java-файл, который является частью test
пакета
@SpringBootApplication
public class TestApplication {
private static final Logger logger = LoggerFactory.getLogger(TestApplication.class);
public static void main(String[] args) {
SpringApplication.run(TestApplication.class, args);
logger.trace("Trace Message!");
logger.debug("Debug Message!");
logger.info("Info Message!");
logger.warn("Warn Message!");
logger.error("Error Message!");
}
}
Почему ничего не записывается в файл?
Ответ №1:
Я думаю, что есть несколько проблем.
Сначала удалите строку <logger name="test" level="DEBUG" />
. Это настраивает регистратор для классов в пакете test
, но не определяет приложение, поэтому ничего не регистрируется.
Как только это исчезнет, добавьте
<root level="DEBUG">
<appender-ref ref="File-Appender"/>
</root>
Это настроит корневой регистратор (который наследуют все регистраторы) на уровне отладки и для вывода всех журналов в File-Appender
.
Кроме того, я не могу вспомнить, создает ли logback отсутствующие каталоги, поэтому вам может потребоваться убедиться, что logs
каталог существует перед запуском приложения.