Câu trả lời:
Cập nhật: Bắt đầu với Spring Boot v1.2.0.RELEASE, cài đặt trong application.properties
hoặc application.yml
áp dụng. Xem phần Nhật ký cấp độ của hướng dẫn tham khảo.
logging.level.org.springframework.web: DEBUG
logging.level.org.hibernate: ERROR
Đối với các phiên bản trước của Spring Boot, bạn không thể. Bạn chỉ cần sử dụng cấu hình bình thường cho khung đăng nhập của bạn (log4j, logback) cho điều đó. Thêm tệp cấu hình thích hợp ( log4j.xml
hoặc logback.xml
) vào src/main/resources
thư mục và định cấu hình theo ý thích của bạn.
Bạn có thể kích hoạt ghi nhật ký gỡ lỗi bằng cách chỉ định --debug
khi khởi động ứng dụng từ dòng lệnh.
Mùa xuân Boot cũng cung cấp một đẹp điểm khởi đầu cho logback để cấu hình một số giá trị mặc định, màu vv các base.xml tập tin mà bạn chỉ có thể bao gồm trong tập tin logback.xml của bạn. (Điều này cũng được khuyến nghị từ logback.xml mặc định trong Spring Boot.
<include resource="org/springframework/boot/logging/logback/base.xml"/>
application.properties
hoặc application.yml
áp dụng, như được trả lời bởi Richard (modulo the :
hoặc =
vấn đề --- dấu hai chấm dường như hoạt động với tôi).
Bạn có thể làm điều đó bằng cách sử dụng application.properations của bạn.
logging.level.=ERROR
-> Đặt mức ghi nhật ký gốc thành lỗi
...
logging.level.=DEBUG
-> Đặt mức ghi nhật ký gốc thành DEBUG
logging.file=${java.io.tmpdir}/myapp.log
-> Đặt đường dẫn tệp nhật ký tuyệt đối thành TMPDIR / myapp.log
Một bộ ứng dụng mặc định lành mạnh về việc ghi nhật ký bằng cách sử dụng hồ sơ sẽ là: ứng dụng. sản phẩm:
spring.application.name=<your app name here>
logging.level.=ERROR
logging.file=${java.io.tmpdir}/${spring.application.name}.log
application-dev.properies:
logging.level.=DEBUG
logging.file=
Khi bạn phát triển bên trong IDE yêu thích của mình, bạn chỉ cần thêm một -Dspring.profiles.active=dev
đối số VM vào cấu hình chạy / gỡ lỗi của ứng dụng.
Điều này sẽ cung cấp cho bạn lỗi chỉ đăng nhập vào sản xuất và ghi nhật ký gỡ lỗi trong quá trình phát triển MÀ KHÔNG ghi đầu ra vào tệp nhật ký. Điều này sẽ cải thiện hiệu suất trong quá trình phát triển (và tiết kiệm ổ SSD trong vài giờ hoạt động;)).
logging.level.:DEBUG
spring-boot 1.4.0
: logging.level.=DEBUG
sẽ khiến ứng dụng không khởi động được và bị lỗi:java.lang.ClassCircularityError: java/util/logging/LogRecord
logging.level.
chỉ là một phím tắt cú pháp tiện lợi logging.level.root
, có thể được ưa thích vì (1) ít bị nhầm lẫn với một lỗi đánh máy, (2) có khả năng rõ ràng hơn và (3) làm việc với =
dấu hiệu gán, cung cấp tính nhất quán tổng thể cao hơn vào tập tin cấu hình.
Cách thích hợp để đặt mức ghi nhật ký gốc là sử dụng thuộc tính logging.level.root
. Xem tài liệu , đã được cập nhật vì câu hỏi này ban đầu được hỏi.
Thí dụ:
logging.level.root=WARN
Giả sử ứng dụng của bạn có tên gói là com.company.myproject
. Sau đó, bạn có thể đặt mức ghi nhật ký cho các lớp bên trong dự án của bạn như được đưa ra dưới đây trong các tệp application.properIES
log.level.com.company.myproject = DEBUG
logging.level.org.springframework.web = DEBUG
và logging.level.org.hibernate = DEBUG
sẽ đặt mức ghi nhật ký cho các lớp của Spring framework web và Hibernate.
Để thiết lập vị trí tệp nhật ký sử dụng
log.file = /home/ubfox/myproject.log
Nếu bạn đang sử dụng Spring Boot thì bạn có thể trực tiếp thêm các thuộc tính sau vào tệp application.properIES để đặt mức ghi nhật ký, tùy chỉnh mẫu ghi nhật ký và lưu trữ nhật ký trong tệp bên ngoài.
Đây là các cấp ghi nhật ký khác nhau và thứ tự của nó từ tối thiểu << tối đa.
TẮT << 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"
Vui lòng thông qua liên kết này để tùy chỉnh nhật ký của bạn sinh động hơn.
https://docs.spring.io/spring-boot/docs/civerse/reference/html/boot-features-logging.html
Trong trường hợp bạn muốn sử dụng một khung ghi nhật ký khác, ví dụ log4j, tôi thấy cách tiếp cận đơn giản nhất là vô hiệu hóa ghi nhật ký của đôi giày lò xo và thực hiện việc ghi nhật ký của riêng bạn. Bằng cách đó, tôi có thể định cấu hình mọi loglevel trong một tệp, đó là log4j.xml (trong trường hợp của tôi).
Để đạt được điều này, bạn chỉ cần thêm các dòng đó vào tệp pom.xml của mình:
<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>
Bạn có thể đã có sự phụ thuộc đầu tiên và chỉ cần hai người kia. Xin lưu ý rằng ví dụ này chỉ bao gồm log4j.
Đó là tất cả, bây giờ bạn đã sẵn sàng cấu hình đăng nhập để khởi động trong tệp cấu hình log4j của bạn!
log4j.properties
.
Bạn có thể thử đặt mức ghi nhật ký thành DEBUG, nó sẽ hiển thị mọi thứ trong khi khởi động ứng dụng
logging.level.root=DEBUG
Đối với các bản ghi: tài liệu chính thức , như đối với Spring Boot v1.2.0.RELEASE và Spring v4.1.3.RELEASE:
Nếu thay đổi duy nhất bạn cần thực hiện để ghi nhật ký là đặt mức độ của các trình ghi nhật ký khác nhau thì bạn có thể thực hiện điều đó trong application.properations bằng cách sử dụng tiền tố "log.level", vd
logging.level.org.springframework.web: DEBUG
logging.level.org.hibernate: ERROR
Bạn cũng có thể đặt vị trí của tệp để đăng nhập (ngoài bảng điều khiển) bằng cách sử dụng "log.file".
Để định cấu hình các cài đặt chi tiết hơn của hệ thống ghi nhật ký, bạn cần sử dụng định dạng cấu hình gốc được LoggingSystem hỗ trợ trong câu hỏi. Theo mặc định, Spring Boot chọn cấu hình gốc từ vị trí mặc định của nó cho hệ thống (ví dụ classpath: logback.xml cho Logback), nhưng bạn có thể đặt vị trí của tệp cấu hình bằng thuộc tính "log.config".
Nếu bạn muốn đặt chi tiết hơn, vui lòng thêm tên tệp cấu hình nhật ký "logback.xml" hoặc "logback-spring.xml".
trong tệp application.properIES của bạn, nhập như thế này:
logging.config: classpath:logback-spring.xml
trong loback-spring.xml, nhập như thế này:
<?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>
Câu trả lời hiện tại là vĩ đại. Tôi chỉ muốn chia sẻ với bạn một tính năng khởi động mùa xuân mới cho phép nhóm nhật ký và đặt mức ghi nhật ký trên toàn nhóm.
Ví dụ từ các tài liệu:
logging.group.tomcat=org.apache.catalina, org.apache.coyote, org.apache.tomcat
logging.level.tomcat=TRACE
Đó là tính năng tốt mang lại sự linh hoạt hơn.
Trong cấu hình hiện tại của tôi, tôi đã xác định nó trong application.yaml như thế:
logging:
level:
ROOT: TRACE
Tôi đang sử dụng spring-boot: 2.2.0.RELEASE. Bạn có thể xác định bất kỳ gói nào có mức TRACE như thế.
trong dự án khởi động mùa xuân, chúng ta có thể viết log.level.root = WARN nhưng vấn đề là ở đây, chúng ta phải khởi động lại ngay cả khi chúng ta thêm phụ thuộc devtools, trong tệp thuộc tính nếu chúng ta sửa đổi bất kỳ giá trị nào sẽ không tự động phát hiện được, vì giới hạn này tôi đã biết giải pháp i, e chúng ta có thể thêm bộ truyền động trong pom.xml và vượt qua mức logger như bên dưới được hiển thị trong ứng dụng khách postman trong thanh url http: // localhost: 8080 / loggers / ROOT hoặc http: // localhost: 8080 / loggers / com .mycompany và trong cơ thể, bạn có thể chuyển định dạng json như bên dưới
{
"configuredLevel": "WARN"
}
Trong trường hợp IDE nhật thực và dự án của bạn là maven, hãy nhớ dọn dẹp và xây dựng dự án để phản ánh các thay đổi.
Với Springboot 2, bạn có thể đặt Cấp ghi nhật ký gốc với Biến môi trường như sau:
logging.level.root=DEBUG
Hoặc bạn có thể đặt ghi nhật ký cụ thể cho các gói như thế này:
logging.level.my.package.name=TRACE
LOGGING_LEVEL_ROOT=DEBUG
, sử dụng cú pháp trường hợp lạc đà
Settings
->Config Vars
được đặt thànhlogging.level.com.yourpackage
mức mong muốn (INFO, ERROR, DEBUG).