Spring Boot - Registrazione
Spring Boot utilizza la registrazione di Apache Commons per tutte le registrazioni interne. Le configurazioni predefinite di Spring Boot forniscono un supporto per l'uso di Java Util Logging, Log4j2 e Logback. Usandoli, possiamo configurare la registrazione della console così come la registrazione dei file.
Se utilizzi Spring Boot Starter, Logback fornirà un buon supporto per la registrazione. Inoltre, Logback fornisce anche un buon supporto per Common Logging, Util Logging, Log4J e SLF4J.
Formato registro
Il formato predefinito del registro Spring Boot è mostrato nella schermata riportata di seguito.
che ti fornisce le seguenti informazioni:
Date e Time che fornisce la data e l'ora del registro
Log level mostra INFO, ERRORE o AVVISO
Process ID
Il --- che è un separatore
Thread name è racchiuso tra parentesi quadre []
Logger Name che mostra il nome della classe di origine
Il messaggio di registro
Output del registro della console
I messaggi di registro predefiniti verranno stampati nella finestra della console. Per impostazione predefinita, i messaggi di registro "INFO", "ERROR" e "WARN" verranno stampati nel file di registro.
Se devi abilitare il log del livello di debug, aggiungi il flag di debug all'avvio dell'applicazione utilizzando il comando mostrato di seguito -
java –jar demo.jar --debug
Puoi anche aggiungere la modalità di debug al tuo file application.properties come mostrato qui -
debug = true
Output registro file
Per impostazione predefinita, tutti i registri verranno stampati nella finestra della console e non nei file. Se vuoi stampare i log in un file, devi impostare la proprietàlogging.file o logging.path nel file application.properties.
È possibile specificare il percorso del file di registro utilizzando la proprietà mostrata di seguito. Notare che il nome del file di registro è spring.log.
logging.path = /var/tmp/
È possibile specificare il nome del file di registro utilizzando la proprietà mostrata di seguito:
logging.file = /var/tmp/mylog.log
Note - i file ruoteranno automaticamente dopo aver raggiunto la dimensione di 10 MB.
Livelli di registro
Spring Boot supporta tutti i livelli di logger come "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "FATAL", "OFF". È possibile definire il logger root nel file application.properties come mostrato di seguito:
logging.level.root = WARN
Note- Il logback non supporta il log di livello "FATAL". È mappato al registro di livello "ERRORE".
Configura Logback
Logback supporta la configurazione basata su XML per gestire le configurazioni Spring Boot Log. I dettagli di configurazione della registrazione sono configurati inlogback.xmlfile. Il file logback.xml dovrebbe essere posizionato sotto il classpath.
È possibile configurare il registro di livello ROOT nel file Logback.xml utilizzando il codice fornito di seguito:
<?xml version = "1.0" encoding = "UTF-8"?>
<configuration>
<root level = "INFO">
</root>
</configuration>
È possibile configurare l'appender della console nel file Logback.xml indicato di seguito.
<?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>
È possibile configurare il file appender nel file Logback.xml utilizzando il codice fornito di seguito. Tieni presente che devi specificare il percorso del file di registro all'interno dell'appender del file.
<?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>
È possibile definire il modello di log in logback.xmlfile utilizzando il codice fornito di seguito. È inoltre possibile definire il set di modelli di registro supportati all'interno della console o nell'appender del registro file utilizzando il codice fornito di seguito:
<pattern>[%d{yyyy-MM-dd'T'HH:mm:ss.sss'Z'}] [%C] [%t] [%L] [%-5p] %m%n</pattern>
Di seguito viene fornito il codice per il file logback.xml completo. Devi inserirlo nel percorso di classe.
<?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>
Il codice riportato di seguito mostra come aggiungere il logger slf4j nel file di classe principale di 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);
}
}
L'output che puoi vedere nella finestra della console è mostrato qui -
L'output che puoi vedere nel file di registro è mostrato qui -