Angesichts des Java-Argument-Evaluierungsmechanismus Wie implementiert Log4j Lazy Evaluation beim Formatieren der Nachricht mit geschweifte Klammern "um die Kosten der Parameterkonstruktion zu vermeiden", wenn das Protokoll deaktiviert ist?
z.B.
%Vor%Ich denke, was Log4j bedeutet, ist, dass mit den geschweiften Klammern, sie vermeiden, einen String zu konstruieren, wenn es nicht notwendig ist (z. B. der Level ist nicht Debuggen):
Mit
%Vor%Die Zeichenfolge wird immer berechnet, auch wenn sie nicht protokolliert ist.
mit
%Vor%Log4j kann zuerst die Log-Ebene überprüfen und dann entscheiden, ob es sich lohnt, den Nachrichten-String zu erstellen.
Log4j verwendet eine interne Klasse ( org.slf4j.helpers.MessageFormatter
), die alle {}
durch die angegebenen Argumente ersetzt. Sie können sich den Quellcode in org.slf4j.impl.Log4jLoggerAdapter.debug(String, Object[])
Tags und Links java log4j lazy-evaluation