3 Stimmen

Gibt es eine log4j oder Commons Logging-Erweiterung oder ein anderes Logging-Framework, das für Java 5 oder höher konzipiert ist?

Java 5 hat viele Funktionen eingeführt, die die Logging-Anweisungen weniger unübersichtlich machen, z. B. die variable Anzahl von Argumenten und printf. Das kann den gesamten Code zur Nachrichtenerstellung, der passiert, wenn etwas protokolliert wird, sowie die umgebenden if .

Zum Beispiel, anstatt zu schreiben:

if (log.isDebugEnabled()
{
    log.debug("User id: "+uid+", Request id:"
    + rid +", Client IP: "+ip+" blah blah blah");
}

Ich würde gerne schreiben:

log.debug("User id: %s, Request id: %s, Client IP: %s blah blah blah",
uid, rid, ip);

oder so ähnlich.

Kennen Sie ein Logging-Framework oder eine Erweiterung für ein Logging-Framework, das dabei helfen kann?

3voto

TJL Punkte 6263

Log5j ist genau das, was Sie brauchen.

2voto

Peter Štibraný Punkte 31886

Einfache Logging-Fassade für Java (SLF4J)

Die einfache Logging-Fassade für Java oder (SLF4J) ist gedacht als eine einfache Fassade für verschiedene Logging-APIs die es dem Endbenutzer ermöglichen, die die gewünschte Implementierung zur Einsatzzeit einfügen kann. SLF4J unterstützt auch eine Überbrückung von Legacy-APIs sowie eine Quellcode-Migrationstool.

SLF4J API bietet eine erweiterte Abstraktion von verschiedenen Logging Systeme, einschließlich JDK 1.4 Logging, log4j und logback. Die Funktionen umfassen parametrisierte Protokollierung und MDC-Unterstützung.

Beispiel:

logger.info("{} {}!", "Hello", "world");

erzeugt "Hello world!", aber nur, wenn die Info-Ebene aktiviert ist.

0 Stimmen

SLF4J verfügt nicht über eine Protokollanweisung mit variablen Argumenten, wie sie vom Auftraggeber gewünscht wird. (Nur 1 und 2 Argumente, der Rest sind Object[]

0 Stimmen

Hmmm, stimmt. Das war mir nie klar. (Bug für dieses Problem ist unter: bugzilla.slf4j.org/show_bug.cgi?id=31 )

1voto

Marko Punkte 29192

Es ist einfach genug, dafür eigene Wrapper-Methoden zu schreiben.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X