Spring Boot использует протоколирование Apache Commons для всех внутренних журналов. Стандартные конфигурации Spring Boot обеспечивают поддержку использования Java Util Logging, Log4j2 и Logback. Используя их, мы можем настроить ведение журнала консоли, а также ведение журнала файлов.
Если вы используете Spring Boot Starters, Logback обеспечит хорошую поддержку для регистрации. Кроме того, Logback также обеспечивает хорошую поддержку Common Logging, Util Logging, Log4J и SLF4J.
Формат журнала
Формат Spring Boot Log по умолчанию показан на снимке экрана ниже.
которая дает вам следующую информацию —
-
Дата и время, которые дают дату и время журнала
-
Уровень журнала показывает INFO, ERROR или WARN
-
Идентификатор процесса
-
— который является разделителем
-
Имя потока заключено в квадратные скобки []
-
Имя регистратора, которое показывает имя класса Source
-
Лог-сообщение
Дата и время, которые дают дату и время журнала
Уровень журнала показывает INFO, ERROR или WARN
Идентификатор процесса
— который является разделителем
Имя потока заключено в квадратные скобки []
Имя регистратора, которое показывает имя класса Source
Лог-сообщение
Вывод журнала консоли
Сообщения журнала по умолчанию будут распечатаны в окне консоли. По умолчанию сообщения журнала «INFO», «ERROR» и «WARN» будут напечатаны в файле журнала.
Если вам нужно включить журнал уровня отладки, добавьте флаг отладки при запуске приложения с помощью команды, показанной ниже —
java –jar demo.jar --debug
Вы также можете добавить режим отладки в файл application.properties, как показано здесь:
debug = true
Вывод файла журнала
По умолчанию все журналы печатаются в окне консоли, а не в файлах. Если вы хотите распечатать журналы в файле, вам нужно установить свойство logging.file или logging.path в файле application.properties.
Вы можете указать путь к файлу журнала, используя свойство, показанное ниже. Обратите внимание, что имя файла журнала — spring.log.
logging.path = /var/tmp/
Вы можете указать собственное имя файла журнала, используя свойство, показанное ниже —
logging.file = /var/tmp/mylog.log
Обратите внимание — файлы будут вращаться автоматически после достижения размера 10 МБ.
Уровни журнала
Spring Boot поддерживает все уровни ведения журнала, такие как «TRACE», «DEBUG», «INFO», «WARN», «ERROR», «FATAL», «OFF». Вы можете определить Root logger в файле application.properties, как показано ниже —
logging.level.root = WARN
Примечание. Logback не поддерживает журнал уровня «FATAL». Он отображается в журнале уровня «ОШИБКА».
Настроить Logback
Logback поддерживает конфигурацию на основе XML для обработки конфигураций Spring Boot Log. Детали конфигурации ведения журнала настраиваются в файле logback.xml . Файл logback.xml должен быть размещен под classpath.
Вы можете настроить журнал уровня ROOT в файле Logback.xml, используя приведенный ниже код —
<?xml version = "1.0" encoding = "UTF-8"?> <configuration> <root level = "INFO"> </root> </configuration>
Вы можете настроить консольный appender в файле Logback.xml, указанном ниже.
<?xml version = "1.0" encoding = "UTF-8"?> <configuration> <appender name = "STDOUT" class = "ch.qos.logback.core.ConsoleAppender"></appender> <root level = "INFO"> <appender-ref ref = "STDOUT"/> </root> </configuration>
Вы можете настроить файл appender в файле Logback.xml, используя приведенный ниже код. Обратите внимание, что вам нужно указать путь к файлу журнала, который находится внутри файла appender.
<?xml version = "1.0" encoding = "UTF-8"?> <configuration> <appender name = "FILE" class = "ch.qos.logback.core.FileAppender"> <File>/var/tmp/mylog.log</File> </appender> <root level = "INFO"> <appender-ref ref = "FILE"/> </root> </configuration>
Вы можете определить шаблон журнала в файле logback.xml, используя приведенный ниже код. Вы также можете определить набор поддерживаемых шаблонов журналов в консоли или в приложении журнала файлов, используя код, приведенный ниже —
<pattern>[%d{yyyy-MM-dd'T'HH:mm:ss.sss'Z'}] [%C] [%t] [%L] [%-5p] %m%n</pattern>
Код для полного файла logback.xml приведен ниже. Вы должны поместить это в путь класса.
<?xml version = "1.0" encoding = "UTF-8"?> <configuration> <appender name = "STDOUT" class = "ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>[%d{yyyy-MM-dd'T'HH:mm:ss.sss'Z'}] [%C] [%t] [%L] [%-5p] %m%n</pattern> </encoder> </appender> <appender name = "FILE" class = "ch.qos.logback.core.FileAppender"> <File>/var/tmp/mylog.log</File> <encoder> <pattern>[%d{yyyy-MM-dd'T'HH:mm:ss.sss'Z'}] [%C] [%t] [%L] [%-5p] %m%n</pattern> </encoder> </appender> <root level = "INFO"> <appender-ref ref = "FILE"/> <appender-ref ref = "STDOUT"/> </root> </configuration>
Приведенный ниже код показывает, как добавить регистратор slf4j в файл основного класса Spring Boot.
package com.tutorialspoint.demo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class DemoApplication { private static final Logger logger = LoggerFactory.getLogger(DemoApplication.class); public static void main(String[] args) { logger.info("this is a info message"); logger.warn("this is a warn message"); logger.error("this is a error message"); SpringApplication.run(DemoApplication.class, args); } }
Вывод, который вы видите в окне консоли, показан здесь —
Вывод, который вы можете увидеть в файле журнала, показан здесь —