Wir schreiben Tausende von Protokolldateien gleichzeitig

Hallo Kameraden!


Was passiert, wenn ich Spring Boot in einer Anwendung einstelle logging.level.root=TRACE?


Alle Protokolle werden in eine einzelne Datei geschrieben, in der sich eine Reihe kleiner Klassen befinden.


Im besten Fall können Sie mit Hilfe von sifting appendermaximal 1 Kriterium ("Diskriminator") teilen - zum Beispiel durch den Namen des Streams oder durch den Namen der Klasse. Und trotzdem - es wird eine Aufzeichnungsfähigkeit vom Quellcode geben, die die Diskriminatorwerte in "MDC" unterstützen sollte.


Halt halt halt! Wir entfernen logback, fügen hinzu und schreiben mit dieser einfachen Konfiguration in separate Protokolldateien für jede Klasse und Protokollierungsstufe - und sogar in separate Verzeichnisse:


Bobbin.yml


destinations:
  - name: io.infinite.bobbin.config.FileDestinationConfig
    fileName: ("./LOGS/INFINITE/${className}/${level}/${className}_${level}_${date}.log")

Und genau das passiert:



Stellen Sie sich nun vor, Sie fragen SRE einen Kollegen:


-      org.visa.api.Transfer
-     ?
-  ERROR 
- !  .

Natürlich geht konzeptionell alles auf ELK zu (naja, entweder Splunk oder Grafana). Aber es ist nicht immer überall konfiguriert - und die guten alten Protokolldateien sind immer noch ziemlich oft relevant.


Wir glauben jedoch, dass wir vom privaten zum allgemeinen Bereich wechseln müssen. Wenn wir in der Lage sind, die oben genannten Tricks auszuführen, hat jeder Logger in der Cloud Chancen. Schließlich hängt alles von der Flexibilität und einfachen Konfiguration ab.


Wir haben ein Video aufgenommen, das dieses Beispiel vollständig demonstriert und zeigt, wie es in der Dynamik funktioniert :



Genieße das Zusehen!


: Java 8 11, Gradle


( — !). , 2020 . logback log4j2. API — , Google Flogger.


Gradle Maven .


— Open Source .
.


!


All Articles