Momentan habe ich eine Logback-Konfigurationsdatei, d. h. logback.xml
, was src/main/resources
ist. Ich möchte das Protokollierungsniveau einstellen, aber ich will Kontrolle außerhalb des Krieges.
Eine Lösung, an die ich denken könnte, ist, sie in der Eigenschaftendatei zu externalisieren, sie beim Serverstart zu laden und den Platzhalter zu ersetzen. Gibt es einen besseren Weg? Können wir nicht logback.xml
außerhalb der WAR-Datei behalten?
Wenn Sie nur die Protokollebene ändern möchten, müssen Sie nicht die gesamte Datei überschreiben, Sie können dies tun:
%Vor%Dann, wenn Sie die Systemeigenschaft festlegen:
%Vor%Es überschreibt den Standard von 'INFO'.
Ich schlage vor, dass Sie zwei Logback-Konfigurationsdateien verwenden. Die erste im Klassenpfad definiert als:
%Vor%und Sie legen die gesamte Konfiguration in die andere. Logback wird beide Dateien nach Updates durchsuchen.
Externe Eigenschaften sind eine Möglichkeit, die Protokollierungsstufe extern zu steuern. Logbacks Funktion Dateieinbindung ist eine weitere Funktion. Die Funktion zum automatischen Neuladen funktioniert übrigens für die enthaltenen Konfigurationsdateien, aber nicht für die Eigenschaftsdateien.
> Eine Möglichkeit, wie es für uns funktionierte, bestand darin, die Konfigurationsdatei wie unten zu externalisieren. Ignorieren Sie den Teil der Federprofile, wenn dies für Sie nicht zutrifft. Sobald Sie also die Konfiguration in logback-include.xml
aktualisieren, sagen wir, indem Sie die Root-Ebene in info ändern, nimmt die Anwendung sie innerhalb von 30 Sekunden auf (konfigurierbar).
Referenz: Ссылка
web.xml
Wir haben Federprofile verwendet, aber es funktioniert auch ohne es.
logback.xml (im Klassenpfad)
Beachten Sie die debug="true"
, die Ihnen sagen wird, wenn die Konfiguration aktualisiert wird.
logback-include.xml (externer Speicherort)
Beachten Sie die Verwendung von <included>
anstelle von Konfiguration. Verpasse diesen Teil nicht!