对于golang
大家一般是怎么做错误日志记录的。
如果我的代码层级是controller->service->repo
层,在repo
层的错误一直往上抛,抛到最外层, 我的想法是用中间件errorMiddleware
统一处理error
并记录错误日志.
但有以下几个问题:
zap
内置的错误zap.Error(err)
, err
的堆栈信息如果原始err
不记录,会直接丢失。pkg/errors
记录stack
或者fmt.Errorf
去记录调用/逻辑栈,但如果我在错误处记录一些现场数据,用起来相比zap.Field
难用,
比如是个map
结构体,里面还带指针什么,用%#v
之类的也不能设置进去。error
处logger
记录, 那每一层的err
都会记录,导致重复logger
。不知道大家有什么好的方式去处理
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.