logstash-logback-encoder

___ tag123groovy ___ Groovy ist eine objektorientierte Programmiersprache für die Java-Plattform. Es ist eine dynamische Sprache mit ähnlichen Funktionen wie Python, Ruby, Perl und Smalltalk. Es kann als Skriptsprache für die Java-Plattform verwendet werden. ___ qstnhdr ___ Logback.groovy LogstashEncoder ändert die Feldnamen ___ qstntxt ___

Ich habe eine logback.groovy, die Daten an ein logstash im Netzwerk mit einigen benutzerdefinierten Feldern sendet:

%Vor%

So weit, so gut. Allerdings muss ich einige Feldnamen bereinigen, die für elasticsearch downstream nicht gültig sind. Basierend auf der LogstashEncoder-Dokumentation kann dies wie folgt erreicht werden:

%Vor%

Das scheint großartig, aber ich muss das in die logback.groovy Notation einfügen. Ich habe es als hashmap, string und mehr versucht, aber immer mit %code%

    
___ answer36832522 ___

Versuchen Sie Folgendes. Möglicherweise müssen Sie auch einen Import für %code% und %code%

hinzufügen %Vor%

Sie können die folgende Hilfeseite auf der Logback-Website verwenden, um Ihre XML-Konfiguration in Groovy umzuwandeln.

Ссылка

    
___ tag123logstashlogbackenkoder ___ hilf uns dieses Wiki zu bearbeiten ___ tag123logstash ___ Logstash ist ein Tool zum Verwalten von Ereignissen und Protokollen. Sie können damit Protokolle erfassen, analysieren und zur späteren Verwendung an den Speicher senden (z. B. Suchen). ___ answer39162043 ___

Ich musste etwas ähnliches tun, obwohl ich den %code% Encoder verwendet habe.

Der Ansatz, den ich verwenden musste, besteht darin, den logstash-logback-encoder-Code zu durchforsten, um die realen Klassen zu ermitteln. Glücklicherweise macht IntelliJs Decompiler dies nicht zu schmerzhaft.

Wenn Sie sich LogstashEncoder ansehen, hat er eine Methode %code% - also brauchen Sie eine Instanz von LogstashFieldNames

LogstashFieldNames wiederum hat Setter für %code% und den Rest, also sollte groovy Ihre Syntax lauten:

%Vor%     
___
2
Antworten

Logback.groovy LogstashEncoder ändert die Feldnamen

Ich habe eine logback.groovy, die Daten an ein logstash im Netzwerk mit einigen benutzerdefinierten Feldern sendet: %Vor% So weit, so gut. Allerdings muss ich einige Feldnamen bereinigen, die für elasticsearch downstream nicht gültig sind. B...
15.04.2016, 13:18