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 -