Ответы:
Обновление: Начиная с Spring Boot v1.2.0.RELEASE, настройки применяются application.properties
или application.yml
применяются. См. Раздел « Уровни журналов» справочного руководства.
logging.level.org.springframework.web: DEBUG
logging.level.org.hibernate: ERROR
Для более ранних версий Spring Boot вы не можете. Для этого вам просто нужно использовать обычную конфигурацию для вашей среды ведения журналов (log4j, logback). Добавьте соответствующий файл конфигурации ( log4j.xml
или logback.xml
) в src/main/resources
каталог и настройте по своему вкусу.
Вы можете включить ведение журнала отладки, указав --debug
при запуске приложения из командной строки.
Spring Boot также предоставляет отличную отправную точку для входа в систему для настройки некоторых параметров по умолчанию, окраски и т. Д. Файла base.xml, который можно просто включить в файл logback.xml. (Это также рекомендуется из стандартного logback.xml в Spring Boot.
<include resource="org/springframework/boot/logging/logback/base.xml"/>
application.properties
или application.yml
применяются, как ответил Ричард (по модулю :
или =
проблема --- двоеточие, кажется, работает для меня).
Вы можете сделать это, используя ваш application.properties.
logging.level.=ERROR
-> Устанавливает уровень ведения журнала корня на ошибку
...
logging.level.=DEBUG
-> Устанавливает уровень ведения журнала корня на DEBUG
logging.file=${java.io.tmpdir}/myapp.log
-> Устанавливает абсолютный путь к файлу журнала TMPDIR / myapp.log
. application.properties:
spring.application.name=<your app name here>
logging.level.=ERROR
logging.file=${java.io.tmpdir}/${spring.application.name}.log
application-dev.properties:
logging.level.=DEBUG
logging.file=
Когда вы разрабатываете внутри своей любимой IDE, вы просто добавляете -Dspring.profiles.active=dev
аргумент as VM в конфигурацию run / debug вашего приложения.
Это даст вам ошибку только при входе в систему и ведении журнала отладки во время разработки БЕЗ записи результата в файл журнала. Это улучшит производительность во время разработки (и сэкономит накопителям SSD несколько часов работы;)).
logging.level.:DEBUG
spring-boot 1.4.0
: logging.level.=DEBUG
приведет к сбою приложения и получению ошибки:java.lang.ClassCircularityError: java/util/logging/LogRecord
logging.level.
это всего лишь удобный синтаксический ярлык logging.level.root
, который можно предпочесть как (1) менее склонный к путанице с опечаткой, (2) потенциально более явный и (3) работу со =
знаком присваивания, который обеспечивает более общую согласованность в файл конфигурации.
Правильный способ установить уровень ведения журнала root - использовать свойство logging.level.root
. Смотрите документацию , которая была обновлена с тех пор, как этот вопрос был задан изначально.
Пример:
logging.level.root=WARN
Предположим, что ваше приложение имеет имя пакета как com.company.myproject
. Затем вы можете установить уровень регистрации для классов внутри вашего проекта, как указано ниже в файлах application.properties
logging.level.com.company.myproject = DEBUG
logging.level.org.springframework.web = DEBUG
и logging.level.org.hibernate = DEBUG
установит уровень ведения журнала только для классов веб-среды Spring и Hibernate.
Для настройки местоположения файла журнала используйте
logging.file = /home/ubuntu/myproject.log
Если вы используете Spring Boot, вы можете напрямую добавить следующие свойства в файл application.properties, чтобы установить уровень ведения журнала, настроить шаблон ведения журнала и сохранить журналы во внешнем файле.
Это разные уровни ведения журнала и его порядок от минимального << максимального.
OFF << FATAL << ERROR << WARN << INFO << DEBUG << TRACE << ALL
# To set logs level as per your need.
logging.level.org.springframework = debug
logging.level.tech.hardik = trace
# To store logs to external file
# Here use strictly forward "/" slash for both Windows, Linux or any other os, otherwise, its won't work.
logging.file=D:/spring_app_log_file.log
# To customize logging pattern.
logging.pattern.file= "%d{yyyy-MM-dd HH:mm:ss} - %msg%n"
Пожалуйста, пройдите по этой ссылке, чтобы настроить свой журнал более ярко.
https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-logging.html
Если вы хотите использовать другую структуру ведения журнала, например, log4j, я обнаружил, что самый простой подход - отключить собственную регистрацию в весенних сапогах и реализовать свою собственную. Таким образом, я могу настроить каждый уровень журнала в одном файле, log4j.xml (в моем случае).
Для этого вам просто нужно добавить эти строки в ваш pom.xml:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j</artifactId>
</dependency>
Вы, вероятно, уже имеете первую зависимость и нуждаетесь только в двух других. Обратите внимание, что этот пример охватывает только log4j.
Вот и все, теперь все готово для настройки ведения журнала загрузки в вашем конфигурационном файле log4j!
log4j.properties
.
Вы можете попробовать установить уровень журнала на DEBUG, он покажет все при запуске приложения
logging.level.root=DEBUG
Для записей: официальная документация , как для Spring Boot v1.2.0.RELEASE и Spring v4.1.3.RELEASE:
Если единственное изменение, которое вам нужно внести в ведение журнала, - это установить уровни различных средств ведения журнала, вы можете сделать это в application.properties, используя префикс «logging.level», например:
logging.level.org.springframework.web: DEBUG
logging.level.org.hibernate: ERROR
Вы также можете установить местоположение файла для входа (в дополнение к консоли), используя "logging.file".
Чтобы настроить более точные параметры системы ведения журнала, необходимо использовать собственный формат конфигурации, поддерживаемый рассматриваемой системой ведения журнала. По умолчанию Spring Boot выбирает исходную конфигурацию из ее местоположения по умолчанию для системы (например, classpath: logback.xml для Logback), но вы можете указать расположение файла конфигурации, используя свойство «logging.config».
Если вы хотите установить более подробную информацию, добавьте имя файла конфигурации журнала «logback.xml» или «logback-spring.xml».
в вашем файле application.properties введите следующее:
logging.config: classpath:logback-spring.xml
в loback-spring.xml введите следующее:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/base.xml"/>
<appender name="ROOT_APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<file>sys.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_DIR}/${SYSTEM_NAME}/system.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>500MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>%-20(%d{yyy-MM-dd HH:mm:ss.SSS} [%X{requestId}]) %-5level - %logger{80} - %msg%n
</pattern>
</encoder>
</appender>
<appender name="BUSINESS_APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>TRACE</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<file>business.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_DIR}/${SYSTEM_NAME}/business.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>500MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>%-20(%d{yyy-MM-dd HH:mm:ss.SSS} [%X{requestId}]) %-5level - %logger{80} - %msg%n
</pattern>
</encoder>
</appender>
<logger name="{project-package-name}" level="TRACE">
<appender-ref ref="BUSINESS_APPENDER" />
</logger>
<root level="INFO">
<appender-ref ref="ROOT_APPENDER" />
</root>
</configuration>
Существующие ответы велики. Я просто хочу поделиться с вами новой функцией весенней загрузки, позволяющей группировать журналы и устанавливать уровень журналирования для всей группы.
Исключить из документов:
logging.group.tomcat=org.apache.catalina, org.apache.coyote, org.apache.tomcat
logging.level.tomcat=TRACE
Это хорошая особенность, которая приносит больше гибкости.
В моем текущем конфиге я определил это в application.yaml так:
logging:
level:
ROOT: TRACE
Я использую spring-boot: 2.2.0.RELEASE. Вы можете определить любой пакет, который должен иметь уровень TRACE.
в весеннем загрузочном проекте мы можем написать logging.level.root = WARN, но здесь проблема в том, что мы должны перезапустить снова, даже если мы добавили зависимость devtools, в файле свойств, если мы изменим, любое значение не будет автоматически определено, для этого ограничения я узнал решение, т.е. мы можем добавить привод в pom.xml и передать уровень ведения журнала, как показано ниже, как показано в клиенте почтальона в строке URL http: // localhost: 8080 / loggers / ROOT или http: // localhost: 8080 / loggers / com .mycompany и в теле вы можете передать формат JSON, как показано ниже
{
"configuredLevel": "WARN"
}
В случае затмения IDE и ваш проект maven, не забудьте очистить и построить проект, чтобы отразить изменения.
В Springboot 2 вы можете установить уровень ведения корневого журнала с помощью переменной среды, например:
logging.level.root=DEBUG
Или вы можете установить определенное ведение журнала для пакетов, как это:
logging.level.my.package.name=TRACE
LOGGING_LEVEL_ROOT=DEBUG
с использованием синтаксиса верблюжьего случая
Settings
->Config Vars
установитеlogging.level.com.yourpackage
желаемый уровень (INFO, ERROR, DEBUG).