SpringBoot используетCommons LoggingВедите все внутренние журналы, но сохраняйте базовую реализацию журналов. предоставляется по умолчаниюJava Util Logging,Log4j2иLogbackКонфигурация журнала. В каждом случае он предварительно сконфигурирован для использования вывода консоли, а также предоставляется необязательный вывод файла. (С официального сайта)
формат журнала
Вывод журнала 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. (С официального сайта)
будь осторожен:
- Система ведения журнала инициализируется на ранней стадии жизненного цикла приложения. Поэтому свойство ведения журнала не найдено в файле свойств, загруженном с помощью аннотации @PropertySource.
- Свойства ведения журнала не зависят от фактической инфраструктуры ведения журнала. Поэтому 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/весенняя загрузка…