Formatieren von Gleitkommazahlen in SLF4J
Möchte ich formatieren, meine doubles und floats auf eine bestimmte Anzahl von Dezimalstellen mit SLF4J.
Im Grunde bin ich auf der Suche für das entsprechende Java String.format("%.2f", floatValue)
im SLF4J.
Gelesen die SLF4J-Dokumentation und googeln um konnte ich nicht finden einen Hinweis, ob es das feature.
Ich bin mit slf4j-api:1.7.6
und slf4j-jdk14:1.7.6
Jede Hilfe wird sehr geschätzt.
- Das ist wirklich ein work-around, nicht eine Antwort, so werde ich es als Kommentar: Man könnte einfach die Ausgabe von
String.format
als argument in Ihr logger-Aufruf:logger.debug("floatValue is {}", String.format("%.2f", floatValue));
- Diese Niederlagen der Zweck der SLF4Js parametrisierte Protokollierung, die Vermeidung Auswertung in der Fall, wenn die log-Nachrichten werden nicht emittiert.
- In diesem Fall, es würde am schnellsten sein, um wickeln Sie den Anruf in
if (logger.isDebugEnabled()) logger.debug(... calls to String.format ....);
zu vermeiden, den ganzen Schlamassel. - Sie würde die Vermeidung der string-Verkettung die Nachricht, die würde nehmen einige der overhead.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gehe ich davon aus das Sie sich beziehen SLF4J-Konvention für den ausbau Parameter, z.B.:
So, die Antwort ist Nein. Wie von SLF4J 1.7.7, was Sie Fragen zu tun, ist unmöglich, da SLF4J-expansion-Algorithmus nicht für custom Renderern (wie die Verfügung über Log4J).
Scheint, verdient Sie eine feature-Anfrage, though.BEARBEITEN:
(Quelle)
Eine etwas unschöne Lösung, die verursacht die Erstellung eines temporären Objektes konnte diese
dann