Genehmigt: Fortect
In den oben genannten Tagen haben einige unserer Leser herausgefunden, wie ich das Verhalten eines geeigneten Protokolls zur Laufzeit ändern kann.
Aus laufender Sicht besteht die Herausforderung darin, die Protokollschichten in einer Fall-zu-Fall-Struktur auf die richtige Weise zu ändern. Um allen Unterwassersteinen auszuweichen, sind nur die folgenden Gegenstände erforderlich:
- Dynamische Änderung der Protokollebene während der Wiedergabe ohne Neustart der gesamten Anwendung.
- Übergeben Sie Protokollinformationen durch Turns an Anwendungsinstanzen.
Protokollierungs-Frameworks haben in den letzten 5 Jahren viele Änderungen erfahren, und danach werden wir sehen, wie nützlich dies sein kann. Da jeder auf eine Microservices-Architektur umsteigt, werden die meisten von uns unweigerlich dabei bleiben und es wird sicherlich Spring Boot, sl4j und Logback als eigenen Nutzungsstapel verwenden.
Dies sind die Optionen, die normalerweise verfügbar sind. Die Verwendung ist nicht nur eng an die Microservices-Architektur gebunden, sondern kann möglicherweise in weiteren Architekturstilen verwendet werden, wenn wir alle tatsächlich sl4j und Logback verwenden.
Option 1: Verwenden Sie einen Spring Boot-Administrator
Können wir die Laufzeit der Protokollebene ändern?
Wie in Aaron’s Day beschrieben, werden Sie die Registrierungsphase programmgesteuert festlegen. Sie können es so implementieren, wie Sie es in Ihrer wunderbaren Anwendung wünschen. Beispielsweise könnten Sie eine grafische Oberfläche haben, in der der Benutzer und der Administrator den Protokollierungsaspekt ändern und die setLevel ()-Methoden für andere Protokollierer aufrufen.
Dies ist die Hauptoption und wird normalerweise am meisten empfohlen, wenn Sie Spring Boot verwenden, da es nicht mehr alles enthält. Mit der Idea-Option muss diese Anwendung einen Sommerbetrieb beinhalten und beim Spring Boot Admin registriert sein.
Der Benutzer verwendet wahrscheinlich die Admin-Benutzeroberfläche eines Spring Footwear-Strators, um das Mobilfunkprotokoll zu ändern.
Wählen Sie einfach den Logger aus und ändern Sie die Zedernmenge mit einem Klick auf die wichtige Stelle. Wie in der Abbildung gezeigt, ändert dies den Schlepppegel auf allen Samper-Instanzen, was Sie niemals tun sollten.
Wenn Sie neu bei Spring Boots Admin sind, finden Sie Details hier. Sie können den gesamten Arbeitscode finden.
Option 2: Logback.xml scannen
Über die logback.xml
können Sie die regelmäßige Überprüfung und Aktualisierung der exklusiven Konfiguration vorbereiten
Wenn Sie diese Protokollebenen in der logback.File-XML-Datei ändern, werden Änderungen rechts 15 nur in einigen Slots wirksam. Um Änderungen auf Protokollebene einmal an alle Containerinstanzen weiterzugeben, folgen Sie der folgenden Architektur:
Hier exportieren Sie diese logback.xml-Datei und stellen sie allen Containern über einen NFS-Mount-Punkt zur Verfügung. Übergeben Sie den neuen Pfad, um Ihnen die Protokolldatei an den Container zu helfen, indem Sie die meisten JVM-Argumente verwenden: -Dlogging â € .config = for each logpath / logback.xml “.
Option -four: Zugriff über XML-URL beenden
Bei dieser Art von Parameter müssen Sie eine URL für die Rückmeldung angeben. via xml mit nginx / apache für jeden HAProxy etc. und Missbrauch von logback.xml via JVM: “-Dlogging.config = http: // host: 9999 /logback.xml” Entschuldigung, nehme an, Sie befreien logback.xml nach der URL, automatische Trickserei Das Parsen wird nicht gestartet. Dazu haben wir eindeutig einen Polling-Mechanismus.
Option: Erstellen Sie eine API zum Ändern der Protokollierungsebenen
Eine weitere Option ist programmgesteuert auf der gesamten Ebene des Änderungsprotokolls, indem Sie sich die API ansehen.
Um Übergänge auf Protokollebene an Instanzen weiterzuleiten, benötigen wir Zeit, um eine der folgenden Methoden zu verwenden:
Genehmigt: Fortect
Fortect ist das weltweit beliebteste und effektivste PC-Reparaturtool. Millionen von Menschen vertrauen darauf, dass ihre Systeme schnell, reibungslos und fehlerfrei laufen. Mit seiner einfachen Benutzeroberfläche und leistungsstarken Scan-Engine findet und behebt Fortect schnell eine breite Palette von Windows-Problemen - von Systeminstabilität und Sicherheitsproblemen bis hin zu Speicherverwaltung und Leistungsengpässen.
Wir benötigen ein spezielles Dienstprogramm, das insbesondere eine API bereitstellt, um den Protokollbereich zu ändern. Electric ruft die IP-Adresse der Zeit(en) ab und führt auch einen API-Aufruf mit jeder zugehörigen APP-Instanz durch.
Optionstechniken: Pub/Sub
Wenn Sie eine Entscheidung „Alle“ treffen, muss die Anwendungsinstanz in unserem eigenen Themenprotokoll registriert werden, das die Pegelschwankungen aufzeichnet.
Dies wird in meinen Augen als Over-Engineering bezeichnet, wenn Sie nur Änderungen auf Protokollebene ausnutzen möchten. Allerdings sollte man in Sachen Microservices-Architektur etwa sehr erfahren sein, wenn man die Protokollphasen aller Anwendungen in einer Person korrigieren möchte.
Fazit
Wie erreichen Sie Veränderung das Loglevel in Logback zur Laufzeit?
Führen Sie ChangeLogLevelDemo von der Java-Anwendung aus.Geben Sie eine beliebige ERROR-Ebene ein.Beobachten Sie die Druckmeldungen jeder Konsole.Wiederholen Sie die Schritte 2 zusätzlich 3 für andere Logger-Ebenen – DEBUG, WARN, TRACE.Aktualisieren Sie Ihre Verbindung.Warten Sie 10 Sekunden.
Es gibt wirklich andere Möglichkeiten, die Projektkonfiguration über FTP, Socket usw. bereitzustellen und herunterzuladen. Einige Tipps bleiben jedoch gleich. Die Wahl der Methode hängt vollständig von der Bereitstellungstopologie, dem Schwung der Anwendungsarchitektur usw. ab.
Das Obige sind die Ansätze, aber dennoch ist das Sichern der Protokollkonfiguration und das Überwachen von Entwicklungen normalerweise kein Blog-Thema. Ich nehme an, Sie kümmern sich um Ihre Umgebung.
Ich hoffe, Ihnen gefällt dieser Beitrag. Fühlen Sie sich frei, auf die Schaltfläche “Genießen” zu klicken.
Wie ändert man sich das Log-Diplom von in Logback zur Laufzeit?
Führen Sie ChangeLogLevelDemo als Java-Anwendung aus.Geben Sie unsere ERROR-Ebene ein.Beachten Sie, wie die Konsole normalerweise Nachrichten erstellt.Wiederholen Sie die Schritte 2 und 3 für zusätzliche Protokollierungsebenen – DEBUG, WARN, TRACE.Aktualisieren Sie Ihre Verbindung.Warte zehn Sekunden.
Protokolle sind sehr wichtig für das Debuggen zahlreicher iPhone-Anwendungen. Protokolle sind das erste und häufig das letzte verfügbare Tool, um alle Ursachen eines Problems zu identifizieren.
Können wir das Protokoll ändern Ebene zur Laufzeit?
Wie Aaron können Sie den Protokollierungsaspekt normalerweise programmgesteuert festlegen. Sie können es in Ihre Anfrage aufnehmen, wenn Sie möchten. Zum Beispiel könnten Sie eine fabelhafte grafische Oberfläche haben, wo ein Benutzer oder manchmal ein fantastischer Administrator die Protokollierungsebene ändert oder dann eine SMS-Nachricht sendet oder die setLevel ()-Methoden auf dem Protokollierer aufruft.
In diesem Blog beschreibe ich nicht was und wie man sich registriert, sondern wie man sich effizient anmeldet. Aber ich kann den kritischen Aspekt sehen, der normalerweise die Tagebuchschichten wirklich sind. Jeder in seiner Umgebung, sei es Fertigung / Qualitätskontrolle oder Entwicklung, hat eine Reihe von festgelegten Protokollwerten. In einem kulturellen Umfeld wird die Protokollierung streng kontrolliert, um sicherzustellen, dass die Größe Ihrer Protokolldatei wirklich minimal ist.
Jeder zweite Kurstag ist anders, Softwareentwicklungsprobleme sind vorhersehbar. Meistens tritt eine Situation auf, in der davon ausgegangen wird, dass nicht genügend aktuelles Brennholz auf niedrigem Niveau geschnitten wird. Daher müssen Sie die Besucherzahlen erhöhen.
Bei fast jeder schlecht gestalteten Anwendung, bei der Protokolldateien eingebettet sein müssen (oder nur in einem JAR für jedes Bild), muss alles zusammen neu erstellt werden, sodass Sie nur die Protokollebenen ändern können. Die Konfiguration des Anwendungsprojekts wird ordnungsgemäß durch das Design ausgelagert. Bis jedoch nur die Protokollausführung geändert wird, sollte die Anwendung neu gestartet werden.
Wie soll ich den Loglevel in spring shoes and boots runtime ändern?
Option 0: Verwenden des Spring Boot Administrators Bei dieser großartigen Option sollte Ihre Anwendung zusätzlich aktivieren und diesen federbelasteten Aktuator bei Spring Boot Admin registrieren. Der Benutzer verwendet die administrative Benutzeroberfläche von Spring Boot, um die Protokollkonzentrationen zu ändern. Wählen Sie einfach einen Logger aus und ändern Sie die Belegebene per Knopfdruck.
Entwicklung, Die Architektur, Anmeldung
Beschleunigen Sie jetzt die Leistung Ihres Computers mit diesem einfachen Download.Wie ändern Sie die Arbeitsebene ?
Um die Debug-Protokollierung zu aktivieren, geben Sie die folgende Gebühr ein: / subsystem = Protokollierung / root-logger = ROOT: change-root-log-level (level = DEBUG)Führen Sie den folgenden Befehl aus, um die Debug-Protokollierung definitiv zu deaktivieren: / subsystem = lugging / root-logger = ROOT: change-root-log-level (level = INFO)
Wie verbessern Sie die Protokollebene in log4j2 zur Laufzeit?
Wenn jemand die Root-Logger-Ebene ändern möchte, gehen Sie so vor: LoggerContext ctx ist gleich (LoggerContext) LogManager. getContext (falsch); Konfig config = ctx. getConfiguration (); LoggerConfig loggerConfig ist immer gleich, wenn config.