日志到底应该怎么打

2021-08-13 17:36:00 +08:00
 ljzxloaf

日志内容

不讨论针对用户行为的埋点日志,仅讨论业务日志。

待过两家公司,完全不同的日志策略:前者是内容平台(也是创业公司),基本上能不打日志就不打,只打一些异常日志;后者是交易平台,基本上所有用户请求都要 trace,每个请求参数,返回值的关键信息,除了集合类型的数据,其他数据都是尽量落日志了。

我总结了下,前者因为是内容平台,内容多寡、精不精确,对用户其实没有承诺(当然用户会用脚投票),真有问题就让用户重新操作下就可以了;而后者因为涉及到交易,需要对交易链条上的每个环节负责到底,无论是因为用户操作不当还是系统问题都需要给出合理的解释。前者没有一个客服,后者一大帮客服。前者平台跟用户是互利的(流量换内容),后者用户是平台爸爸。

思考:用户对产品的认知有差异,产品越简单,这种差异越小,就越不需要客服,也就越不需要日志。减少日志的办法可能还是简化产品逻辑,使之符合更多人的预期。

日志级别

正常业务流程 info,业务异常 warn (可能是参数不对或者不能满足一些业务条件之类的),这两种都属于正常情况,ret=0,表示结果是可用的,前端可以直接展示给用户。业务异常不能打 error,否则会有大量报警。

只有系统异常(如超时)才打 error,ret 不等于 0,表示结果不可用,前端可以根据 errorcode 判断是要重试还是怎么处理。这种异常会报警,可以标识服务的状态。

errorcode 也是一个值得讨论的话题,不过这贴先不讨论了。

不知道 XDM 在项目中是如何实践的,欢迎分享讨论

4493 次点击
所在节点    程序员
26 条回复
coolloves
2021-08-14 13:30:38 +08:00
如果是性能日志或者程序的运行日志,当然是看大爷您心情了,只要你别出问题或者出问题了能快速定位.
但是如果是业务日志,还是要根据业务 /产品需求吧,别到时候客户要查自己啥时候登陆过,啥时候做个 xx 操作,你这边一脸糟比
kongkongyzt
2021-08-14 13:39:55 +08:00
两种打日志的策略我都经历过, 我个人是觉得能多打日志的话就多打吧, 不然到时候追踪问题的时候就很麻烦了, 尤其是对方是惹不起的大客户的时候
GM
2021-08-14 15:14:18 +08:00
@chenshun00
算你翻 100 倍,又如何? 1000 倍我更开心,说明有大量业务,花钱买就是了。
zu1y
2021-08-15 00:43:41 +08:00
我们这网关一台服务器每小时打 500G 左右日志,也只打了出入参。。

挂了 4T 的硬盘,搞了个 crontab 每小时 zip 后转到 nfs 上去。。

虽说硬盘这玩意确实不值钱,但每天这上百 T 的日志也不是个事,量太大也不好搞 ELK 里去查。很是🥚疼

但应该是监管部门对这玩意有要求,需要至少保存 6 个月?
PolarBears
2021-08-15 03:00:09 +08:00
@zu1y 虽然监管部门有要求要 6 个月,但没要求日志要详细到什么程度
darknoll
2021-08-15 19:25:32 +08:00
我就不想打太多日志了,客户出问题我直接连对方调试呗

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/795645

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX