Logback的JIRA页面上有关于此问题的错误报告。从那以后没有太大的发展24/Feb/10 3:57 PM
。我刚刚投票以引起注意。你也应该
我将提供与ISO 8601匹配的日期格式。
这应该可以解决问题:
<pattern>%d{"yyyy-MM-dd'T'HH:mm:ss,SSS"} [%thread] %-5level %logger{35} - %msg %n
</pattern>
的""
需要,使,
工作的描述文档。
该<pattern>
元素属于您的Logback配置设置。这是一个示例logback.xml
文件:
<?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>
为了更完全符合ISO 8601标准,并且为了获得更有用的日志记录,您应该包括一个时区。
编辑(Michael-O,2014-06-15):事实 并非 如此,时区是绝对可选的。
要包含时区,请向传递第二个参数(请参阅doc)%date
。传递时区的专有名称。避免使用三个或四个字母的时区代码,例如“ EST”,因为它们既不是唯一的也不是标准化的。例如,通过Australia/Perth
。通常,对于日志记录,我们需要UTC(GMT)时间,这意味着没有任何偏移。在这种情况下,请通过UTC
。
您可以在日志中将时区偏移量显示为日期和时间的小时数和分钟数。附加一个X
以将时区偏移显示为日期时间值的一部分。
这个…
%date{"yyyy-MM-dd'T'HH:mm:ss,SSSXXX", UTC}
…产生…
2014-04-16T09:59:24,009Z