Aus Neugier - warum Logging-APIs implementieren printf () - wie Logging-Methoden?

8

Unabhängig davon, ob es sich um java.util.logging, commons-logging, log4j oder sogar das neueste slf4j und Logback handelt, keine dieser APIs schlägt Methoden vor, wie etwa:

%Vor%

Dabei ist format eine Zeichenfolge, die mit Formatter analysiert wurde. Stattdessen bleiben sie bei MessageFormat .

Ich verstehe, dass es zu bestehenden Prototypen in Konflikt kommen würde, also warum nicht debugf() oder ähnliches, aber warum gibt es keine solchen Methoden, die Formatter sind so alt wie Java 1.5?

Ist es aus Leistungsgründen, Rückwärtskompatibilität ...?

(Beachten Sie, dass ich wirklich über Formatter spreche, dh einschließlich Platzhaltern wie %s , %02x usw.)

    
fge 26.12.2011, 12:27
quelle

1 Antwort

7

slf4j tut es. Siehe Ссылка . Es ist einer der Hauptvorteile (für mich) von slf4j gegenüber log4j. Es vermeidet die Notwendigkeit von isDebugEnabled() überall.

BEARBEITEN:

In der Dokumentation slfl4j wird erläutert, warum die Standardformatierung aus dem JDK nicht verwendet wird:

  

SLF4J verwendet eine eigene Formatierungsimplementierung, die sich unterscheidet   von dem der Java-Plattform. Dies ist durch die Tatsache gerechtfertigt, dass   Die Implementierung von SLF4J führt ungefähr 10-mal schneller aus, aber auf Kosten   als nicht standardisiert und weniger flexibel.

    
JB Nizet 26.12.2011, 12:37
quelle

Tags und Links