日志里的时间对不上,先看时区再查问题
【摘要】 有一次查线上问题,日志里报错的时间和我动手的时间对不上,差了整整 8 小时。第一反应是服务时钟错了,后来才发现是时区没对齐,服务用的还是默认时区,日志按那个时区打印,我按本地时间去对,当然对不上。查这种问题先看三处。系统时间用 date 看一行就够了,重点看它后面跟的是 CST 还是 UTC。应用日志要看时间戳后面带不带时区标记,带 +0800 或者 Z 的能直接换算,不带标记的只能默认按服...
有一次查线上问题,日志里报错的时间和我动手的时间对不上,差了整整 8 小时。第一反应是服务时钟错了,后来才发现是时区没对齐,服务用的还是默认时区,日志按那个时区打印,我按本地时间去对,当然对不上。查这种问题先看三处。系统时间用 date 看一行就够了,重点看它后面跟的是 CST 还是 UTC。应用日志要看时间戳后面带不带时区标记,带 +0800 或者 Z 的能直接换算,不带标记的只能默认按服务所在时区理解。容器里跑的服务还要看启动时有没有传时区环境变量,没传就按镜像默认时区走,和宿主机未必一致。处理上别急着改机器时区。改时区会影响这台机器上所有按本地时间跑的东西,定时任务和证书有效期判断都可能跟着变。稳妥的做法是让日志本身带上时区标记,或者在采集和展示那一层统一换算,原始时间戳不动,只在看的时候转成本地时间。新服务上线,我现在会先确认一条日志的时间和本地时间对不对得上。对不上就先把时区这层捋顺,再往业务逻辑里查,能省掉不少绕路。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)