Журнал интеграции проекта SpringBoot

Spring Boot

SpringBoot используетCommons LoggingВедите все внутренние журналы, но сохраняйте базовую реализацию журналов. предоставляется по умолчаниюJava Util Logging,Log4j2иLogbackКонфигурация журнала. В каждом случае он предварительно сконфигурирован для использования вывода консоли, а также предоставляется необязательный вывод файла. (С официального сайта)

SpringBoot默认提供的三种日志配置实现

формат журнала

Вывод журнала SpringBoot по умолчанию выглядит следующим образом:

2014-03-05 10:57:51.112  INFO 45469 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/7.0.52
2014-03-05 10:57:51.253  INFO 45469 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2014-03-05 10:57:51.253  INFO 45469 --- [ost-startStop-1] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 1358 ms
2014-03-05 10:57:51.698  INFO 45469 --- [ost-startStop-1] o.s.b.c.e.ServletRegistrationBean        : Mapping servlet: 'dispatcherServlet' to [/]
2014-03-05 10:57:51.702  INFO 45469 --- [ost-startStop-1] o.s.b.c.embedded.FilterRegistrationBean  : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]

Выведите следующие элементы:

  • Дата и время: миллисекундная точность и простая сортировка
  • Уровень журнала: ERROR, WARN, INFO, DEBUG, TRACE
  • Идентификатор процесса
  • --- разделитель, чтобы отличить начало фактического журнала
  • Название темы: заключено в квадратные скобки (можно обрезать)
  • имя регистратора: обычно это имя исходного класса (обычно сокращенное)
  • информация журнала

В Logback нет уровня FATAL, он отображается на уровень ERROR

(формат журналаотОфициальный сайт)

консольный вывод

Вывод консоли SpringBoot по умолчанию поддерживает три уровня ведения журнала: ERROR, WARN и INFO.

Если вы также хотите вывести журналы другого уровня, такие как DEBUG или TRACE (вы можете выбрать только один из двух), сделайте следующее:

  • При запуске приложения увеличьте флаг --debug или --trace
    $ java -jar myapp.jar -- debug
    
    说明:使用debug调试模式启动应用程序不会将应用程序配置为使用DEBUG级别记录日志。
    
  • Добавьте debug: true или trace: true (или debug=true/trace=true) в application.yml (или application.properties)

    файл application.yml:

    debug: true
    

    файл application.properties:

    debug=true
    

Красочный выход:

Цветной вывод можно настроить, если терминал поддерживает ANSI (представление цвета).

Настройки в application.yml:

# 检查终端是否支持ANSI,是的话就采用彩色输出
spring:
  output:
    ansi:
      enabled: detect

Настройки в application.properties:

# 检查终端是否支持ANSI,是的话就采用彩色输出
spring.output.ansi.enabled=detect

выходной файл

Журнал конфигурации SpringBoot по умолчанию будет выводиться только на консоль, а не в файл, но обычно производственная среда должна записывать журнал в файл.

Свойства конфигурации следующие:

  • logging.file: укажите абсолютный или относительный путь к выходному файлу журнала.
  • logging.path: укажите каталог вывода журнала, в этом каталоге будет создан файл spring.log, и содержимое журнала будет записано.

Файл журнала сворачивает выходные данные, когда он достигает 10 МБ, и, как и выходные данные консоли, по умолчанию регистрирует журналы уровня ERROR, WARN и INFO. Ограничение размера можно изменить с помощью свойства logging.file.max-size. Ранее ротированные файлы журналов будут архивироваться на неопределенный срок, если не задано свойство logging.file.max-history. (С официального сайта)

будь осторожен:

  1. Система ведения журнала инициализируется на ранней стадии жизненного цикла приложения. Поэтому свойство ведения журнала не найдено в файле свойств, загруженном с помощью аннотации @PropertySource.
  2. Свойства ведения журнала не зависят от фактической инфраструктуры ведения журнала. Поэтому SpringBoot не управляет определенными ключами конфигурации (такими как logback.configurationFile Logback). (С официального сайта)

Настройки в application.yml:

logging:
  # 设置相对路径的日志输出文件
  file: log/my.log
  # 设置日志输出路径,默认会生成log/spring.log日志文件
  path: log
  
logging:
  # 设置绝对路径的日志输出文件
  file: D:\ideaProjects\SpringBootDemo\log1\mylog1.log
  # 设置日志输出路径,默认会生成log/spring.log日志文件
  path: log

Настройки в application.properties:

logging.file=log/my.log
logging.path=log

日志文件输出

контроль уровня

Формат свойства конфигурации: logging.level.*=LEVEL

  • logging.level: префикс управления уровнем журнала, * — имя пакета или имя регистратора.
  • УРОВЕНЬ: Опции TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF

Настройки в application.yml:

logging:
  level:
    # com.example.demo包下所有class以DEBUG级别输出
    com.example.demo: DEBUG
    # root日志以INFO级别输出
    root: INFO
    
说明:
配置日志级别值大小写均可,例如:设置成debug/info    

Настройки в application.properties:

logging.level.com.example.demo=DEBUG
logging.level.root=INFO

说明:
配置日志级别值大小写均可,例如:设置成debug/info

Докопайтесь до сути вещей и побейте себя (необязательно)

1. Параметры настройки уровня журнала

Уровень системного журнала в исходном коде — это класс перечисления, в котором перечислены все уровни журнала, как показано на следующем снимке экрана:

日志级别

В соответствии со значением LEVEL, установленным в application.yml, сопоставьте класс перечисления системного журнала и, наконец, установите уровень журнала в соответствующем пакете системы.

配置值匹配系统日志枚举类

Официальный сайт SpringBoot:docs.spring.IO/весенняя загрузка…