log4j : aktuelle Zeit in Millisekunden
In log4j.properties
ich kann PatternLayout
z.B. ("[%p] %c - %m - %d %n")
Gibt es irgendein symbol (%irgendwas) liefert aktuelle Zeit in Millisekunden?
Gibt es einen Grund, warum Sie brauchen, um zu erfassen log-Zeit in Millisekunden? Protokolle gedruckt werden in der Reihenfolge der Ausführung sowieso.
Ich versuche zu sammeln, die Protokolle von verteilten Systems und berechnen Sie den Zeitunterschied zwischen Ihnen. Ich brauche zuverlässige Informationen, Wann das Protokoll erzeugt wurde.
Ich versuche zu sammeln, die Protokolle von verteilten Systems und berechnen Sie den Zeitunterschied zwischen Ihnen. Ich brauche zuverlässige Informationen, Wann das Protokoll erzeugt wurde.
InformationsquelleAutor alicjasalamon | 2012-08-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es keine Log4J-symbol, das genau das tut, was Sie wollen.
%d
gibt das aktuelle Datum mit einem bestimmten Muster, definiert durch eineSimpleDateFormat
(das Muster, das Sie zwischen die Klammern), aber nicht geben Sie die Zeit in millis.%r
gibt die Anzahl der Millisekunden seit dem start der Ausführung.Eine Möglichkeit, das zu erreichen, was Sie wollen, ist zu erweitern, das Verhalten von Log4j, es ist ein bisschen komplizierter, aber wenn es absolut notwendig ist... hier gehen Sie:
Anpassen log4j (edit: nicht mehr online?)
Anpassen log4j (edit: 2018 alternative)
Bearbeiten:
Beachten Sie, dass aus Ihrem Kommentar, wenn Sie brauchen, um herauszufinden, die Zeit Unterschiede zwischen den Ausführungen, die in verschiedenen Maschinen, die Sie haben, um sicherzustellen, dass die Uhren der Maschinen synchronisiert sind, oder es werden, was werden Sie zu falschen Schlussfolgerungen.
Das ist Millisekunden als Teil des Datums, nicht das Datum in Millisekunden. Es ist komplett anders. Aus der ursprünglichen Frage, was der OP fragte, wurde nach einer Möglichkeit zum drucken eines timestamp im Millisekunden. Lesen Sie vor der downvoting bitte.
Ok, vereinbart. Ich möchte zu entfernen, meine downvote, kann aber nicht, da zu viel Zeit vergangen ist. Aber wenn die OP muss vergleichen Sie die Protokolle aus mehreren Systemen, (s)er kann immer noch die Zeit MIT Millisekunden und führen Sie die Berechnung auf Ihre eigenen - givenDateFormat.parse(dateString).getTime(). Es wäre einfacher als die Erweiterung log4j und würde die Arbeit auf bereits erstellte log-Dateien zu.
Datum der Bearbeitung in Log4j verwendet Java ist schrecklich langsam Date api. Buchstäblich, mehrere Millisekunden und zehn Millisekunden können abrasiert werden die Ausführungszeit für jede log-Anweisung aus, indem Sie System.currentTimeMillis(). Dies ist besonders nützlich für Menschen, die sich für DBs wie können Sie dann farm ab dem Datum Berechnungen, wo Sie vielleicht sogar schneller sein!
InformationsquelleAutor pcalcao
Können Sie versuchen, diese ein.
Datum params
%d
. Zum Beispiel :%d{HH:mm:ss,SSS}
.http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/PatternLayout.html
InformationsquelleAutor turankonan
Versuchen, diese,
InformationsquelleAutor Sai Ye Yan Naing Aye
Sollten Sie in der Lage sein zu verwenden
%d{UNIX_MILLIS}
Von der Handbuch:Habe es versucht, und es funktioniert
InformationsquelleAutor thegeko