wie man Kafka 0.8 Log4j Appender benutzt

8

Ich versuche Kafka-0.8 Log4j Appender zu benutzen und kann es nicht machen. Ich möchte, dass meine Anwendung über log4j appender direkt an kafka sendet.

Hier ist meine log4j.properties. Ich konnte keinen geeigneten Encoder finden, daher konfiguriere ich ihn nur für den Standard-Encoder. (z. B. habe ich die Zeile kommentiert.)

%Vor%

Und das ist meine Beispielanwendung.

%Vor%

Ich habe Maven zum Kompilieren verwendet. Ich habe kafka_2.8.2-0.8.0 und log4j_1.2.17 in meine pom.xml aufgenommen

Und ich bekomme diese Fehlermeldung:

%Vor%

Ich erhalte kontinuierlich einen Fehler, wenn das Programm nicht beendet wird.

Wenn ich etwas vermisse, lass es mich wissen.

    
style95 26.02.2014, 07:42
quelle

3 Antworten

5

Ich denke, Jonas hat das Problem identifiziert, das heißt, die Kafka-Erzeugerprotokollierung wird auch beim Kafka-Appender geloggt, was zu einer Endlosschleife und schließlich zu einem Stapelüberlauf führt (kein Wortspiel beabsichtigt) Sie können alle Kafka-Protokolle so konfigurieren, dass sie zu einem anderen Appender gelangen. Im Folgenden wird die Ausgabe an stdout gesendet:

%Vor%

Sie sollten also in Ihren log4j.properties

enden %Vor%     
Naveen Warusavithana 09.03.2014 11:00
quelle
2

Ich konnte Ereignisse über log4j in Kafka 0.8.2.2 generieren. Hier ist meine log4j Konfiguration:

%Vor%

Hier ist der Quellcode:

%Vor%

Das gesamte Projekt ist unter dem folgenden Link verfügbar:

Ссылка

    
Yagna Pant 16.11.2015 15:09
quelle
1

Versuchen Sie, den Appender asynchron wie folgt zu setzen: log4j.appender.KAFKA.ProducerType = async

Scheint vernünftig, dass es in eine Endlosschleife geht, weil der Kafka-Produzent sich selbst angemeldet hat.

    
Jonas Bergström 08.03.2014 14:58
quelle

Tags und Links