Kenntnisse über SpringBoot-Protokolldateien

Inhaltsverzeichnis

Wozu dienen Protokolle?

Wie verwende ich das Protokoll?

Individueller Protokolldruck

Holen Sie sich das Protokollobjekt im Programm

Drucken Sie das Protokoll mithilfe des Protokollobjekts

Protokollformat

Klassifizierung und Verwendung von Protokollebenen

Einstellungen für die Protokollebene

Protokollpersistenz


Wozu dienen Protokolle?

Für uns besteht der Hauptzweck von Protokollen darin, Probleme zu beheben und zu lokalisieren.

Neben der Erkennung und Lokalisierung von Problemen können wir durch Protokolle auch die folgenden Funktionen erreichen:

        Zeichnen Sie Benutzeranmeldeprotokolle auf, um die Analyse zu erleichtern, ob sich der Benutzer normal angemeldet hat oder den Benutzer böswillig geknackt hat.

        Zeichnen Sie das Betriebsprotokoll des Systems auf, um die Datenwiederherstellung zu erleichtern und den Bediener zu lokalisieren.

        Zeichnen Sie die Ausführungszeit des Programms auf, um Datenunterstützung für die zukünftige Optimierung des Programms bereitzustellen.

Dies sind alles sehr praktische Funktionen, die Protokolle bieten.

Wie verwende ich das Protokoll?

Das Spring Boot-Projekt verfügt standardmäßig über eine Protokollausgabe, wenn es gestartet wird, wie in der folgenden Abbildung dargestellt:

Anhand der obigen Protokollinformationen können wir die folgenden drei Probleme finden:

        1. Spring Boot verfügt über ein integriertes Protokollierungsframework (andernfalls wird das Protokoll nicht ausgegeben).

        2. Standardmäßig wird das Ausgabeprotokoll nicht vom Entwickler definiert und gedruckt. Wie kann der Entwickler also das Druckprotokoll im Programm anpassen?

        3. Das Protokoll wird standardmäßig auf der Konsole gedruckt, das Konsolenprotokoll kann jedoch nicht gespeichert werden. Wie kann das Protokoll also dauerhaft gespeichert werden?

Individueller Protokolldruck

Implementierungsschritte für Entwickler zum Anpassen von Druckprotokollen:

        1. Holen Sie sich das Protokollobjekt in das Programm.

        2. Verwenden Sie die entsprechende Syntax des Protokollobjekts, um den zu druckenden Inhalt auszugeben. 

Holen Sie sich das Protokollobjekt im Programm

Um das Protokollobjekt im Programm abzurufen, müssen Sie die Protokollfabrik LoggerFactory verwenden, wie im folgenden Code gezeigt:

private static Logger logger = LoggerFactory.getLogger(UserController.class);

Die Protokollfabrik muss den Typ jeder Klasse übergeben, damit wir die Klasse des Protokolls kennen und die Problemklasse bequemer und intuitiver lokalisieren können.

Hinweis: Das Logger-Objekt gehört zum Paket org.slf4j

Da das Protokollierungsframework Slf4j in Spring Boot integriert ist, können wir slf4j direkt im Programm aufrufen, um Protokolle auszugeben.

Drucken Sie das Protokoll mithilfe des Protokollobjekts

Es gibt viele Möglichkeiten, Protokollobjekte zu drucken. Wir können zunächst die Methode info() verwenden, um das Protokoll auszugeben, wie im folgenden Code gezeigt:

logger.info("--------------要输出日志的内容----------------");

Protokollformat

Klassifizierung und Verwendung von Protokollebenen

Spur: Spur, was ein wenig bedeutet, die unterste Ebene;

debug: Schlüsselinformationen drucken, wenn Debugging erforderlich ist;

info: normale Druckinformationen (Standardprotokollebene);

warnen: Warnung, beeinträchtigt die Verwendung nicht, erfordert aber Aufmerksamkeit;

Fehler: Fehlerinformationen, übergeordnete Fehlerprotokollinformationen;

fatal: Fatal, ein Ereignis, das dazu führt, dass das Programm aufgrund einer Code-Ausnahme die Ausführung beendet.

Reihenfolge der Protokollebene:

Je höher die Stufe, desto weniger Nachrichten werden empfangen. Wenn „Warnung“ festgelegt ist, werden nur Warnungs-, Fehler- und schwerwiegende Protokolle empfangen.

Einstellungen für die Protokollebene

Für die Konfiguration der Protokollebene ist lediglich die Einstellung des Konfigurationselements „logging.level“ in der Konfigurationsdatei erforderlich, wie unten gezeigt:

logging:
  level:
   root: error

Konfigurieren Sie die Protokollebene des Pfads.

@RestController
@RequestMapping("/user")
public class UserController {
     // 1.得到⽇志对象
     private static Logger logger =
             LoggerFactory.getLogger(UserController.class);
     @Value("${server.port}")
     private String port;
     @Value("${spring.datasource.url}")
     private String url;
     @RequestMapping("/sayhi")
     public String sayHi() {
     // 2.使⽤⽇志打印⽇志
     logger.trace("================= trace ===============");
     logger.debug("================= debug ===============");
     logger.info("================= info ===============");
     logger.warn("================= warn ===============");
     logger.error("================= error ===============");
     return "Hi," + url;
     }
}

Die standardmäßige Protokollausgabestufe ist „Info“.

Protokollpersistenz

Die oben genannten Protokolle werden alle auf der Konsole ausgegeben. In einer Produktionsumgebung müssen wir die Protokolle jedoch speichern, damit wir die Probleme verfolgen können, nachdem Probleme aufgetreten sind. Der Prozess des Speicherns der Protokolle wird als Persistenz bezeichnet.

Wenn Sie das Protokoll beibehalten möchten, müssen Sie nur das Protokollspeicherverzeichnis in der Konfigurationsdatei angeben oder den Namen der Protokollspeicherdatei angeben. Spring Boot schreibt dann das Konsolenprotokoll in das entsprechende Verzeichnis oder die entsprechende Datei.

Konfigurieren Sie den Speicherpfad der Protokolldatei:

# 设置⽇志⽂件的⽬录
logging:
 file:
 path: D:\\home\\test

Konfigurieren Sie den Dateinamen der Protokolldatei:

# 设置⽇志⽂件的⽬录
logging:
 file:
 path: D:/home/tests/pring-1204.log

Acho que você gosta

Origin blog.csdn.net/m0_62468521/article/details/131360188
Recomendado
Clasificación