spring boot logback日志显示时间差8小时 不一定是时区问题

本文详细记录了作者在配置Logback时间格式时遇到的难题及解决过程。通过排查发现,问题根源在于时间格式模式的误用,尤其是逗号在模式中的特殊作用。文章分享了如何正确使用日期模式,并提供了官网链接以供进一步查阅。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天遇到如题的问题,各种搜索关键字都找不到我想要的,基本搜索到的都是mysql的jdbcurl后面加一个配置,我用的是sqlserver跟这个没有关系。

还有提到applicationContext里加上这句话的,我也试了没用

spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=GMT+8
期间还怀疑了logback版本、windows时间问题

------------------------------------------------------------------------------------------------------------

最后发现是logback的pattern导致的,官网有解释https://logback.qos.ch/manual/layouts.html

我是错在HH:mm:ss.SSS和HH:mm:ss,SSS。

我直接搜索yyyy,搜到第一段有了含逗号的那个patern就直接复制粘贴拿来用了,后面发现是logback配置文件问题一步一步细分发现是patern去查了官网才发现这个问题。

官方说: Given that the comma ',' character is interpreted as the parameter separator, the pattern HH:mm:ss,SSS will be interpreted as the pattern HM:mm:ss and the timezone SSS. If you wish to include a comma in your date pattern, then simply enclose the pattern between quotes. For example, %date{"HH:mm:ss,SSS"}.

在使用逗号时,会默认使用时区设置,坑了我一个下午。。。啊大家引以为戒,看文章仔细点

 

### 设置日志输出路径 在 `logback.xml` 中设置日志输出路径主要通过定义 `<appender>` 元素来实现。具体来说,可以使用 `FileAppender` 或其子类如 `RollingFileAppender` 来指定日志文件的位置。 #### 使用 FileAppender 输出到固定位置的日志文件 ```xml <configuration> <!-- 定义一个名为 FILE 的 appender --> <appender name="FILE" class="ch.qos.logback.core.FileAppender"> <!-- 日志文件的绝对路径或相对路径 --> <file>/var/logs/myapplication.log</file> <!-- 编码方式 --> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <!-- 将 root logger 关联至上述 appender --> <root level="debug"> <appender-ref ref="FILE"/> </root> </configuration> ``` #### 使用 RollingFileAppender 实现滚动日志文件 对于生产环境而言,通常推荐使用带有大小限制和时间轮转功能的 `RollingFileAppender`: ```xml <configuration> <!-- 定义一个名为 ROLLING_FILE 的 appender --> <appender name="ROLLING_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!-- 日志文件存储位置 --> <file>logs/application.log</file> <!-- 当达到最大尺寸时触发新文件创建策略 --> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- 归档后的日志命名模式 --> <fileNamePattern>logs/application-%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern> <!-- 单个文件的最大容量 --> <maxFileSize>10MB</maxFileSize> <!-- 总共保留多少天的历史记录 --> <maxHistory>30</maxHistory> </rollingPolicy> <!-- 控制台编码器配置 --> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg%n</pattern> </encoder> </appender> <!-- 绑定 logger 到 rolling file appender 上 --> <root level="info"> <appender-ref ref="ROLLING_FILE"/> </root> </configuration> ``` 以上两种方法都可以有效地控制日志输出的目标路径[^1][^2][^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值