您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

使Logback以“%date”格式在日期和时间之间包括“ T”,以严格遵守ISO 8601

使Logback以“%date”格式在日期和时间之间包括“ T”,以严格遵守ISO 8601

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

XXXJava中7和8的作品在早期版本的Java,您可以使用Z格式定义中产生的偏移数量缺乏一个冒号。

其他 2022/1/1 18:16:21 有470人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶