Bug Report
Es gibt einen Fehlerbericht dazu auf Logback's JIRA page. Es gab nicht viel Entwicklung seit 24/Feb/10 3:57 PM
. Ich habe gerade gewählt, um Aufmerksamkeit zu erregen. Du solltest auch.
Ich würde mein eigenes Datumsformat zur Verfügung stellen, das ISO 8601 entspricht.
Insert "T"
Dies sollte den Trick:
<pattern>%d{"yyyy-MM-dd'T'HH:mm:ss,SSS"} [%thread] %-5level %logger{35} - %msg %n
</pattern>
Die ""
nötig ist, um die ,
Arbeit zu machen, wie in den documentation beschrieben.
Das <pattern>
Element gehört zu Ihrer Logback-Konfigurationseinstellung. Hier ist ein Beispiel logback.xml
Datei:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<!-- Strangely, Logback lacks a built-in formatter for ISO 8601. So, roll our own. -->
<Pattern>%date{"yyyy-MM-dd'T'HH:mm:ss,SSSXXX", UTC} [%thread] %-5level %logger{36} - %msg%n</Pattern>
</layout>
</appender>
<logger name="com.example" level="TRACE"/>
<root level="debug">
<appender-ref ref="STDOUT" />
</root>
</configuration>
Zeitzone
vollständige ISO 8601 konform und für weitere hilfreiche Protokollierung zu sein, sollten Sie eine Zeitzone enthalten.
BEARBEITEN (Michael-O, 2014-06-15): Das ist nicht wahr, Zeitzone ist absolut optional.
Um eine Zeitzone einzubeziehen, übergeben Sie ein zweites Argument (see doc) an die %date
. Übergeben Sie die proper name of a time zone. Vermeiden Sie die drei- oder vierstelligen Zeitzonencodes wie "EST", da sie weder eindeutig noch standardisiert sind. Übergeben Sie beispielsweise Australia/Perth
. Generell wollen wir für die Protokollierung UTC (GMT) Zeit, also ohne Offset. Übergeben Sie in diesem Fall UTC
.
Sie können den Zeitzonen-Offset als Anzahl von Stunden und Minuten als Teil der Datums- und Uhrzeit im Protokoll anzeigen. Fügen Sie eine X
an, um den Zeitzonenoffset als Teil des Datumszeitwerts anzuzeigen.Diese
...
%date{"yyyy-MM-dd'T'HH:mm:ss,SSSXXX", UTC}
... produziert ...
2014-04-16T09:59:24,009Z
Die XXX
Werke in Java 7 und 8. In früheren Versionen von Java, können Sie in der Lage sein, eine Z
in der Formatdefinition zu verwenden, um eine Offset-Nummer zu erzeugen, die keinen Doppelpunkt hat.
@Basil Ich habe keine, lass mich es versuchen und zu dir zurück. –
@basil Meinst du für das Datum oder die ganze Sache? –
Vollständige Sache. Ich bin mir nicht sicher, ob die Escape-Sequenz für die hartcodierte Zeichenfolge "T" Logback glücklich macht. Alles ist hilfreich, da das Logback-Dokument uns Neulinge nicht sanft macht. –