2017-04-14 5 views
1

Ich bin derzeit mit slf4j Logger in meiner Klasse:SLF4J Logger nicht auf der Bühne {} Substitutionen

import org.slf4j.Logger; 
import org.slf4j.LoggerFactory; 

Und obwohl ich die {} Substitution in meinem Code verwenden, wie unten:

logger.info("User {} successfully logged in to the system",u.getEmail()); 

Bitte überprüfen Sie meine Logback-Konfiguration unten:

<encoder> 
    <pattern>%d [%thread] %-5level %logger{36} H:${HOSTNAME} - SC:%X{optionalParam} %msg%n</pattern> 
</encoder> 

Obwohl ich die neuesten stabilen v ersion slf4j 1.7.25 die {} wird immer noch nicht richtig ersetzt.

Der folgende Text ist die Ausgabe von logger.info:

"User {} erfolgreich in das System angemeldet"

Ich schaffe den Logger mit LoggerFactory:

Logger logger = LoggerFactory.getLogger(CryptoWorks.class); 
+0

Welche slf4j-Implementierung haben Sie zur Laufzeit im Klassenpfad? Und was wird protokolliert? –

+0

Wie erstellen Sie den Logger? Und was ist die Ausgabe von 'logger.info'? –

+0

Hier finden Sie die aktualisierte Bearbeitung – rjcossa

Antwort

1

Nach einigen Untersuchungen habe ich festgestellt, dass das Problem in dem Encoder-Muster war, das von Logback verwendet wurde.

änderte ich den Encoder Muster:

<encoder> 
     <pattern>%d [%thread] %-5level %logger{5} H:${HOSTNAME} - %msg%n</pattern> 
</encoder> 

Und alles begann dementsprechend und nun die {} Substitutionen erfolgreich durchgeführt arbeiten werden.

Verwandte Themen