Wie drucke ich nur dann ein Schlüssel/Wert-Paar auf einem log4j-Eintrag, wenn der Wert auf MDC gesetzt ist?Wie kann ich Text von MDC in einem LOG4J-Muster bedingt hinzufügen?
Zum Beispiel, ich habe zur Zeit das folgende Muster:
%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - client=%X{client} %m%n
Ich mag würde den „client =“ Teil drucken nur, wenn es ein Wert auf MDC für diesen Schlüssel ist.
Zum Beispiel, wenn mein Programm zu starten, wird es kein Client angemeldet sein, um Protokolle mit diesem Muster aufgezeichnet werden würden:
%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
jedoch, nachdem der Client angemeldet hat (und nachdem ich eingestellt habe das MDC mit einem „Client“ Taste), muss ich es mit dem folgenden drucken:
%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - client=%X{client} %m%n
gibt es eine solche „bedingte Muster“ auf log4j?
Danke
Ich weiß nicht, ein solches Feature, auch in Log4j2 ... Wenn kein Wert ist für Der zu protokollierende Schlüssel '% X {client}' erzeugt eine leere Zeichenfolge. Warum entfernen Sie 'client =' nicht aus Ihrem Muster oder fügen Sie 'c =' string prefix in Ihrem Wert hinzu? – xav
Hm das könnte möglich sein! Ich werde das versuchen, wenn ich morgen ins Büro komme. – Matheus208