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)可能存在的歧义问题。
浙公网安备 33010602011771号