Spring Boot - rejestrowanie
Spring Boot używa rejestrowania Apache Commons do wszystkich wewnętrznych rejestrów. Domyślne konfiguracje Spring Boot umożliwiają korzystanie z Java Util Logging, Log4j2 i Logback. Korzystając z nich, możemy skonfigurować rejestrowanie konsoli, a także rejestrowanie plików.
Jeśli używasz Spring Boot Starters, Logback zapewni dobrą obsługę logowania. Poza tym Logback zapewnia również dobre wsparcie dla Common Logging, Util Logging, Log4J i SLF4J.
Format dziennika
Domyślny format Spring Boot Log pokazano na zrzucie ekranu podanym poniżej.
który zawiera następujące informacje -
Date i Time który podaje datę i godzinę dziennika
Log level wyświetla INFO, ERROR lub WARN
Process ID
--- który jest separatorem
Thread name jest ujęta w nawiasy kwadratowe []
Logger Name który pokazuje nazwę klasy źródłowej
Komunikat dziennika
Wyjście dziennika konsoli
Domyślne komunikaty dziennika zostaną wydrukowane w oknie konsoli. Domyślnie komunikaty dziennika „INFO”, „ERROR” i „WARN” są drukowane w pliku dziennika.
Jeśli musisz włączyć dziennik poziomu debugowania, dodaj flagę debugowania podczas uruchamiania aplikacji za pomocą polecenia pokazanego poniżej -
java –jar demo.jar --debug
Możesz również dodać tryb debugowania do pliku application.properties, jak pokazano tutaj -
debug = true
Plik wyjściowy dziennika
Domyślnie wszystkie dzienniki będą drukowane w oknie konsoli, a nie w plikach. Jeśli chcesz wydrukować dzienniki w pliku, musisz ustawić właściwośćlogging.file lub logging.path w pliku application.properties.
Możesz określić ścieżkę do pliku dziennika, korzystając z właściwości pokazanej poniżej. Zwróć uwagę, że nazwa pliku dziennika to spring.log.
logging.path = /var/tmp/
Możesz określić własną nazwę pliku dziennika, korzystając z właściwości pokazanej poniżej -
logging.file = /var/tmp/mylog.log
Note - pliki będą się obracać automatycznie po osiągnięciu rozmiaru 10 MB.
Log Levels
Spring Boot obsługuje wszystkie poziomy rejestratorów, takie jak „TRACE”, „DEBUG”, „INFO”, „WARN”, „ERROR”, „FATAL”, „OFF”. Możesz zdefiniować główny rejestrator w pliku application.properties, jak pokazano poniżej -
logging.level.root = WARN
Note- Logback nie obsługuje dziennika poziomu „FATAL”. Jest odwzorowany na dzienniku poziomu „ERROR”.
Skonfiguruj wylogowanie
Logback obsługuje konfigurację opartą na XML do obsługi konfiguracji Spring Boot Log. Szczegóły konfiguracji logowania są konfigurowane wlogback.xmlplik. Plik logback.xml należy umieścić pod ścieżką klas.
Możesz skonfigurować poziom logowania na poziomie ROOT w pliku Logback.xml za pomocą kodu podanego poniżej -
<?xml version = "1.0" encoding = "UTF-8"?>
<configuration>
<root level = "INFO">
</root>
</configuration>
Możesz skonfigurować appender konsoli w pliku Logback.xml podanym poniżej.
<?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>
Możesz skonfigurować program dołączający plik w pliku Logback.xml, używając kodu podanego poniżej. Zwróć uwagę, że musisz określić ścieżkę do pliku dziennika w programie dołączającym plik.
<?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>
Możesz zdefiniować wzorzec logowania w logback.xmlplik przy użyciu kodu podanego poniżej. Możesz również zdefiniować zestaw obsługiwanych wzorców dziennika wewnątrz konsoli lub programu dołączającego dziennik pliku za pomocą kodu podanego poniżej -
<pattern>[%d{yyyy-MM-dd'T'HH:mm:ss.sss'Z'}] [%C] [%t] [%L] [%-5p] %m%n</pattern>
Kod pełnego pliku logback.xml znajduje się poniżej. Musisz to umieścić w ścieżce klasowej.
<?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>
Poniższy kod pokazuje, jak dodać rejestrator slf4j w głównym pliku klasy 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);
}
}
Dane wyjściowe, które możesz zobaczyć w oknie konsoli, są pokazane tutaj -
Dane wyjściowe, które można zobaczyć w pliku dziennika, są pokazane tutaj -