Eine eigenständige Java-App, die Protokolle mit slf4j / logback an CloudWatch-Protokolle sendet

Machen Sie sich eine Notiz, bevor Sie vergessen. Ich habe ein Beispiel erstellt, um den Mechanismus zum Senden von Protokollen an CloudWatch-Protokolle zu verstehen, konnte jedoch keine Site finden, auf die verwiesen werden kann.

Annahme

  1. Ich möchte nicht so viel wie möglich machen → Verwenden Sie OSS auf Github
  2. Ich möchte mit dem Mindestcode senden
  3. Gradle kompatibel

Ergebnis

Jetzt das.

https://github.com/kojiisd/cloudwatch-logs-java-standalone

OSS verwendet

cloudwatch-logback-appender https://github.com/j256/cloudwatch-logback-appender

Wie benutzt man

Wenn Sie den Inhalt von logback.xml bearbeiten, können Sie das Protokoll bis zu einem gewissen Grad frei fließen lassen.

    <appender name="CLOUDWATCH" class="com.j256.cloudwatchlogbackappender.CloudWatchAppender">
        <region>us-east-1</region>
        <accessKeyId>XXXXXXX</accessKeyId>
        <secretKey>XXXXXXX</secretKey>
        <logGroup>test-loggroup</logGroup>
        <logStream>test-logstream</logStream>
        <layout>
            <pattern>[%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - %msg%n</pattern>
        </layout>
        <maxBatchSize>32</maxBatchSize>
    </appender>

accesskeyidOdersecretkeyScheint zur awsconfig der Ausführungsmaschine zu gehen, wenn das Element selbst gelöscht wird (obwohl ich es nicht ausprobiert habe)

Ausführungsergebnis

Das Protokoll wurde erfolgreich in CloudWatch-Protokolle ausgegeben. (Wenn die Protokollgruppe oder der Protokolldatenstrom nicht vorhanden ist, wird sie erstellt.)

スクリーンショット 2019-02-17 19.18.35.png

wichtiger Punkt

Um Daten an CloudWatch-Protokolle in der Bibliothek zu senden, führen wir natürlich verschiedene Initialisierungen und Datenversendungen durch. Da dieser Prozess in Threads ausgeführt wird, endet beim Beenden des Protokollierungsprozesses des Aufrufers und beim Beenden der Anwendung auch die untergeordnete Thread-Seite automatisch, und das Protokoll wird nicht an CloudWatch-Protokolle gesendet. (Eigentlich glaube ich nicht, dass es möglich ist, Protokolle mit einer solchen eigenständigen App zu senden, daher denke ich nicht, dass dies ein so großes Problem darstellt.) Ich bemerkte dies, als ich mir die Quelle auf der OSS-Seite ansah.

Um dies zu vermeiden, habe ich die Schlafverarbeitung absichtlich für etwa 20 Sekunden in die Implementierung eingefügt.

Zusammenfassung

Es war sehr leicht zu erreichen, wenn ich nicht in die Vorsicht geriet.

Recommended Posts

Eine eigenständige Java-App, die Protokolle mit slf4j / logback an CloudWatch-Protokolle sendet
Eine Geschichte, die ich mit Java nur schwer herausfordern konnte
So interagieren Sie mit einem Server, der die App nicht zum Absturz bringt
So erstellen Sie eine App mit einem Plug-In-Mechanismus [C # und Java]
Stellen Sie Java-Webanwendungen mit maven in Azure bereit
Ich habe versucht, den Block mit Java zu brechen (1)
Erstellen Sie ein Docker-Image, um eine einfache Java-App auszuführen
Senden Sie einen Job an AWS Batch mit Java (Eclipse)
Protokoll mit slf4j + Logback mit Maven in externe Datei ausgeben
[Java] So unterbrechen Sie eine Zeile mit StringBuilder
[Java] logback slf4j Beispiel
Ich möchte eine Schleife schreiben, die auf einen Index mit der Stream-API von Java 8 verweist
Ich habe versucht, mit Chocolatey eine Java8-Entwicklungsumgebung zu erstellen
Java-Programm zum Ändern der Größe eines Fotos in ein Quadrat mit Rändern
Ich habe versucht, eine Java EE-Anwendung mit OpenShift zu modernisieren.
[Rails] Ich habe versucht, eine Mini-App mit FullCalendar zu erstellen
So stellen Sie eine einfache Java-Servlet-App auf Heroku bereit
[Anfänger] Versuchen Sie, mit Java ein einfaches RPG-Spiel zu erstellen ①
[Anfänger] Android App, die Bälle mit Sensoren rollt [Java]
Ich möchte eine Liste mit Kotlin und Java erstellen!
Ich möchte eine Funktion mit Kotlin und Java erstellen!
So stellen Sie eine Kotlin (Java) -App auf AWS fargate bereit
Selbst in Java möchte ich true mit == 1 && a == 2 && a == 3 ausgeben
So entwickeln und registrieren Sie eine Sota-App in Java
Ein Memo zum Starten der Java-Programmierung mit VS Code (Version 2020-04)
Wie gehe ich mit dem Typ um, den ich 2 Jahre lang über das Schreiben eines Java-Programms nachgedacht habe?
Java zum Spielen mit Function
Stellen Sie mit Java eine Verbindung zur Datenbank her
Stellen Sie mit Java eine Verbindung zu MySQL 8 her
Eine clevere Möglichkeit, Logger mit SLF4J in Java / build.gradle entry / 2019 zu vereinheitlichen
So implementieren Sie einen Job, der die Java-API in JobScheduler verwendet
So stellen Sie eine App bereit, die ein lokales Glas auf Heroku verweist
Herstellen einer Verbindung zu einer Datenbank mit Java (Teil 1) Möglicherweise die grundlegende Methode
Ersetzen Sie durch einen Wert entsprechend der Übereinstimmung mit einem regulären Java-Ausdruck
Eine Geschichte, die ich mit der Stream-API von Java8 einem Prozess schreiben wollte, der einer while-Anweisung entspricht
Wenn Sie sshpass von Java mit Shell usw. aufrufen, scheint es notwendig zu sein, einen Pfad zu haben.