post-image

Spring Boot – Logging

Spring Boot Starters & Common Configurations

Spring Boot sử dụng Apache Commons logging cho tất cả internal logging(nhật ký nội bộ). Cấu hình mặc định của Spring Boot cung cấp hỗ trợ cho việc sử dụng Java Util Logging, Log4j2, và Logback. Sử dụng chúng, chúng ta có thể cấu hình logging console cũng như file logging.

Nếu bạn sử dụng Spring Boot Starters, Logback sẽ hỗ trợ rất tốt cho việc logging. Bên cạnh đó, Logback cũng cung cấp khả năng hỗ trợ tốt cho Common Logging, Util Logging, Log4J và SLF4J.

Log Format

Spring Boot Log format mặc định được hiển thị như hình dưới.

Spring Boot Log Format

cung cấp cho bạn thông tin sau

  • Date và Time  cung cấp ngày và giờ của nhật ký.
  • Log level hiển thị INFO, ERROR, hoặc WARN.
  • Process ID.
  • — là một dấu phân cách.
  • Thread name được đặt trong dấu ngoặc vuông []
  • Logger Name hiển thị tên Source class.
  • The Log message

Console Log Output


Các thông báo nhật ký mặc định sẽ được in ra cửa sổ console. Theo mặc định thì message log “INFO”, “ERROR” và “WARN” sẽ được in ra.

Nếu bạn phải debug level log, hãy thêm cờ debug khi chạy ứng dụng, sử dụng câu lệnh sau:

javajar demo.jar --debugCode language: CSS (css)

Bạn cũng có thể thêm chế độ debug vào file application.properties của mình như được hiển thị ở đây.

debug = trueCode language: JavaScript (javascript)

File Log Output

Theo mặc định, tất cả nhật ký sẽ in trên cửa sổ console chứ không phải trong file. Nếu bạn muốn in logs trong một file, bạn cần đặt thuộc tính logging.file hoặc logging.path trong file application.properties.

Bạn có thể chỉ định đường dẫn file log bằng cách sử dụng thuộc tính được hiển thị bên dưới. Lưu ý rằng tên tệp nhật ký là spring.log.

logging.path = /var/tmp/Code language: JavaScript (javascript)

Bạn có thể chỉ định tên tệp nhật ký của riêng mình bằng cách sử dụng thuộc tính được hiển thị bên dưới.

logging.file = /var/tmp/mylog.logCode language: JavaScript (javascript)

Lưu ý – các tệp sẽ tự động xoay sau khi đạt đến kích thước 10 MB.

Log Levels

Spring Boot hỗ trợ tất cả các levels logger như “TRACE”, “DEBUG”, “INFO”, “WARN”, “ERROR”, “FATAL”, “OFF”. Bạn có thể xác định trình ghi gốc trong file application.properties như hình dưới đây:

logging.level.root = WARN

Lưu ý – Logback không hỗ trợ level log “FATAL”. Nó được ánh xạ tới level log “ERROR”.

Configure Logback

Logback hỗ trợ cấu hình dựa trên XML để xử lý các cấu hình Spring Boot Log. Chi tiết cấu hình ghi nhật ký được định cấu hình trong tệp logback.xml. Tệp logback.xml phải được đặt trong classpath.

Bạn có thể định cấu hình level log ROOT trong tệp Logback.xml bằng cách sử dụng mã được cung cấp bên dưới.

<?xml version = "1.0" encoding = "UTF-8"?>
<configuration>
   <root level = "INFO">
   </root>
</configuration>Code language: HTML, XML (xml)

Bạn có thể định cấu hình trình ứng dụng console trong file Logback.xml được cung cấp bên dưới.

<?xml version = "1.0" encoding = "UTF-8"?>
<configuration>
   <appender name = "STDOUT" class = "ch.qos.logback.core.ConsoleAppender"></appender>
   <root level = "INFO">
      <appender-ref ref = "STDOUT"/> 
   </root>
</configuration>Code language: HTML, XML (xml)

Bạn có thể định cấu hình trình kết nối tệp trong tệp Logback.xml bằng cách sử dụng mã được cung cấp bên dưới. Lưu ý rằng bạn cần chỉ định đường dẫn tệp nhật ký bên trong tệp đính kèm.

<?xml version = "1.0" encoding = "UTF-8"?>
<configuration>
   <appender name = "FILE" class = "ch.qos.logback.core.FileAppender">
      <File>/var/tmp/mylog.log</File>
   </appender>   
   <root level = "INFO">
      <appender-ref ref = "FILE"/>
   </root>
</configuration>Code language: HTML, XML (xml)

Bạn có thể định nghĩa Log pattern trong file logback.xml bằng cách sử dụng code bên dưới. Bạn cũng có thể định nghĩa các mẫu nhật ký được hỗ trợ bên trong bảng điều khiển hoặc trình ứng dụng nhật ký tệp bằng cách sử dụng mã được cung cấp bên dưới:

<pattern>[%d{yyyy-MM-dd'T'HH:mm:ss.sss'Z'}] [%C] [%t] [%L] [%-5p] %m%n</pattern>Code language: HTML, XML (xml)

Mã cho tệp logback.xml hoàn chỉnh được cung cấp bên dưới. Bạn phải đặt cái này trong đường dẫn lớp.

<?xml version = "1.0" encoding = "UTF-8"?>
<configuration>
   <appender name = "STDOUT" class = "ch.qos.logback.core.ConsoleAppender">
      <encoder>
         <pattern>[%d{yyyy-MM-dd'T'HH:mm:ss.sss'Z'}] [%C] [%t] [%L] [%-5p] %m%n</pattern>
      </encoder>
   </appender>
   
   <appender name = "FILE" class = "ch.qos.logback.core.FileAppender">
      <File>/var/tmp/mylog.log</File>
      <encoder>
         <pattern>[%d{yyyy-MM-dd'T'HH:mm:ss.sss'Z'}] [%C] [%t] [%L] [%-5p] %m%n</pattern>
      </encoder>
   </appender>
   
   <root level = "INFO">
      <appender-ref ref = "FILE"/>
      <appender-ref ref = "STDOUT"/> 
   </root>
</configuration>Code language: HTML, XML (xml)

Đoạn mã dưới đây cho thấy cách thêm trình ghi nhật ký slf4j trong tệp lớp chính của Spring Boot.

package com.tutorialspoint.demo;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoApplication {
   private static final Logger logger = LoggerFactory.getLogger(DemoApplication.class);
   
   public static void main(String[] args) {
      logger.info("this is a info message");
      logger.warn("this is a warn message");
      logger.error("this is a error message");
      SpringApplication.run(DemoApplication.class, args);
   }
}Code language: JavaScript (javascript)

Kết quả mà bạn có thể thấy trong cửa sổ bảng điều khiển được hiển thị ở đây.

Logger Console Window

Kết quả mà bạn có thể thấy trong file log được hiển thị ở đây.

Log Output

Bài viết được tham khảo từ nguồn:

https://www.tutorialspoint.com/spring_boot/spring_boot_logging.htm

Leave a Reply

Your email address will not be published. Required fields are marked *