[zeromicro/go-zero]建议:增加debug级别的日志;所有级别的日志统一增加文件名以及行数内容

2024-03-08 854 views
6
  • 所有日志统一格式

目前有些级别的日志有文件名和行数内容输出,比如error级别日志,有些级别的日志无文件名和行数内容输出,例如

{"@timestamp":"2020-10-25T18:39:21.376+08","level":"slow","content":"hello slow world"}
{"@timestamp":"2020-10-25T18:39:21.376+08","level":"stat","content":"hello stat world"}
{"@timestamp":"2020-10-25T18:39:21.376+08","level":"info","duration":"61000.0ms","content":"hello"}
{"@timestamp":"2020-10-25T18:39:21.376+08","level":"error","duration":"61000.0ms","content":"logging.go:28 hello"}
{"@timestamp":"2020-10-25T18:39:21.376+08","level":"error","duration":"1000.0ms","content":"logging.go:10 world"}

建议所有日志统一添加文件名以及行数

  • 建议类似zap添加debug级别的日志

回答

8

出于性能和查看日志定位问题的效率,我们的低优先级的日志目前没有打印文件名和行数,error级别及以上的错误会有文件名和行数,这样已经满足我们目前的要求了

3

大家可以讨论下:

  1. info本来就是一些非重要信息,需要知道打印文件和行数的诉求不大
  2. 增加debug,然后在线上关闭debug输出,这样就会导致大家不会删掉debug消息,从而代码里冗余信息过多

鉴于此,所以我一直没有修改,听听大家的意见。

3

个人感觉debug日志很有必要,能帮助排查BUG进度。希望能加上此日志等级

0

关于日志,个人建议将 @timestamp level 这些json 的 key 去掉。 reids 日志 image springboot 默认日志 image

日志格式都是统一的,没必要在添加描述信息

2

个人觉得

  1. 框架日志输出有些过多,框架默认日志应为debug级别更合适,上线后只输出自定义日志及框架监控日志(若需要)即可。
  2. 增加相应模块日志开关,根据自己的需求开启输出哪些模块日志即可。
  3. 日志属性名称可适当精简,只要保持好约定即可。每条精简一下全部累积下来量还是比较可观。
7

error打印的路径和函数名过于简略,没法确保所有人代码里是否存在同名文件或者同名函数,排查问题效率会有折扣