调用BladeLogger记录通用日志,存储的日志时间和记录时间早了8个小时

Blade 未结 2 152
qdieslab
qdieslab 剑童 2024-10-10 10:02
悬赏:5

一、该问题的重现步骤是什么?

  1. 调用BladeLogger记录通用日志,存储的日志时间和当前时间差了8个小时

    image.png

  2. 系统服务(Blade-Auth、Blade-User)的日志输出时间是正常的,自己的服务的日志输出就是差了8小时

  3. 系统日志输出代码

    image.png

  4. 自己服务日志输出代码

    image.png

  5. 在nacos的blade.yaml中配置了时区也不起作用

    image.png

二、你期待的结果是什么?实际看到的又是什么?


三、你正在使用的是什么产品,什么版本?在什么操作系统上?

  使用的bladex2.9.1版本,windows操作系统


四、请提供详细的错误堆栈信息,这很重要。


五、若有更多详细信息,请在下面提供。


2条回答
  • 2024-10-10 10:08

    这里打断点输出一下看看这个类的createTime字段有没有值,如果没有值就说明是数据库层面的问题。再看下你连接数据库的url地址是多少,有没有单独指定时区。CleanShot20241010100551@2x.png


    还有先不用你自己封装的Util来进行日志写入,你写一个接口,注入BladeLogger。用原始的logger类进行写入数据库,再看下结果



    0 讨论(0)
  • 2024-10-10 10:21

    我调试了,传的参数正确,接收参数错误

    image.png

    image.png

    作者追问:2024-10-10 10:41

    在blade-log服务,创建一个同目录的类LogAbstract(这个类在BladeX-Tool的starter-log包内),覆盖掉Tool工程的默认类,给他的注解改一下试试

    CleanShot20241010104037@2x.png

    CleanShot20241010104106@2x.png

    回答: 2024-10-10 10:51

    刚测试了,用原始的logger类进行写入数据库也是时间不对

    image.png

    输出结果

    image.png


    回答: 2024-10-10 11:02

    覆盖的方式确实可以解决,现在时间和当前时间一样了,不过总感觉不够通用,是否有更通用的解决方式

    作者追问:2024-10-10 11:13

    如果是bladex原生的服务出问题,那我们是比较好排查的,主要是现在你创建的业务工程引用出的问题。我们不知道具体配置情况,所以就不好排查了。最好的办法就是走这个覆盖的操作了,这样后续其他服务都不会有问题

    0 讨论(0)
提交回复