Відповіді:
Оновлення: Починаючи з 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 щодо журналу за допомогою профілів буде: 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
аргумент VM до конфігурації запуску / налагодження програми.
Це дасть вам помилку лише на вході у виробництво та налагодження журналу під час розробки БЕЗ запису виводу у файл журналу. Це підвищить продуктивність під час розробки (і збереже 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) робота зі =
знаком призначення, що забезпечує більшу послідовність у файл конфігурації.
Правильний спосіб встановити рівень кореневого журналу - це використання властивості logging.level.root
. Дивіться документацію , яка оновлювалася з моменту спочатку заданого питання.
Приклад:
logging.level.root=WARN
Припустимо, ваша програма має назву пакета як com.company.myproject
. Тоді ви можете встановити рівень реєстрації для класів всередині вашого проекту, як зазначено нижче у файлах application.properties
logging.level.com.company.myproject = ДЕБУГ
logging.level.org.springframework.web = DEBUG
і logging.level.org.hibernate = DEBUG
встановить рівень реєстрації лише для класів Spring Framework Web і Hibernate.
Для налаштування розташування файлів журналу використовуйте
logging.file = /home/ubuntu/myproject.log
Якщо у вас є Spring Boot, ви можете безпосередньо додати наступні властивості у файл application.properties, щоб встановити рівень журналу, налаштувати шаблон реєстрації та зберігати журнали у зовнішньому файлі.
Це різні рівні реєстрації та його порядок від мінімального << максимуму.
OFF << FATAL << ПОМИЛКА << 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, я знайшов найпростіший підхід - відключити весняні черевики власного журналу та реалізувати свій власний. Таким чином я можу налаштувати кожен loglevel в одному файлі, 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".
Для налаштування більш тонких налаштувань системи ведення журналу потрібно використовувати нативний конфігураційний формат, підтримуваний відповідною LoggingSystem. За замовчуванням 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 = УВАГА, але тут проблема полягає в тому, що ми повинні перезапустити ще раз, навіть якщо ми додали залежність від devtools, у файлі властивостей, якщо ми змінили будь-яке значення, не буде автоматично визначати, для цього обмеження я дізнався Рішення i, ми можемо додати виконавчий механізм у pom.xml та передати рівень реєстратора, як показано нижче, як показано на клієнта листоноші в URL-адресі http: // localhost: 8080 / loggers / ROOT або http: // localhost: 8080 / loggers / com .mycompany та в тілі ви можете передати формат json, як показано нижче
{
"configuredLevel": "WARN"
}
У випадку затьмарення IDE і ваш проект породжений, не забудьте очистити і побудувати проект, щоб відобразити зміни.
За допомогою Springboot 2 ви можете встановити рівень кореневого журналу за допомогою змінної середовища таким чином:
logging.level.root=DEBUG
Або ви можете встановити певний журнал для таких пакетів:
logging.level.my.package.name=TRACE
LOGGING_LEVEL_ROOT=DEBUG
використовуючи синтаксис справи верблюда
Settings
->Config Vars
встановитиlogging.level.com.yourpackage
бажаний рівень (INFO, ПОМИЛКА, DEBUG).