通过在 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 - 处理请求开始
这种格式的优势是时区信息更加明确,避免了时区缩写(如 CST)可能存在的歧义问题。