logback日期格式8

通过在 Logback 的 pattern 中使用 %d{yyyy-MM-dd HH:mm:ss.SSS, XXX} 配置的:

具体配置方法

<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS, XXX} [%thread] %-5level %logger{36} - %msg%n</pattern>

完整的 logback.xml 配置示例

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS, XXX} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>
    
    <root level="INFO">
        <appender-ref ref="CONSOLE" />
    </root>
</configuration>

时区格式说明

· XXX:时区偏移量格式,显示为 +08:00、-05:00 等
· Z:时区 RFC 822 格式,显示为 +0800(没有冒号)
· z:时区名称缩写,显示为 CST、PST 等

不同时区格式对比

<!-- 显示为: 2024-01-15 16:30:45.123, +08:00 -->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS, XXX} %msg%n</pattern>

<!-- 显示为: 2024-01-15 16:30:45.123, +0800 -->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS, Z} %msg%n</pattern>

<!-- 显示为: 2024-01-15 16:30:45.123, CST -->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS, z} %msg%n</pattern>

输出示例

使用 XXX 格式的输出:

2024-01-15 16:30:45.123, +08:00 [main] INFO  com.example.UserService - 用户登录成功: user123
2024-01-15 16:30:46.234, +08:00 [http-nio-8080-exec-1] DEBUG com.example.Service - 处理请求开始

设置为东八区(北京时间)

java -Duser.timezone=GMT+08 -jar app.jar

设置为 UTC 时区

java -Duser.timezone=UTC -jar app.jar

设置为美国东部时区

java -Duser.timezone=America/New_York -jar app.jar
这种格式的优势是时区信息更加明确,避免了时区缩写(如 CST)可能存在的歧义问题。

posted @ 2025-11-27 21:44  cqs1234  阅读(2)  评论(0)    收藏  举报