我正在使用zerolog在我的 Go 应用程序中进行日志记录,并且我正在尝试遵循最佳实践以仅在堆栈顶部出错。但是,我不确定如何将两者都写入我的错误日志并将错误向上传递:
func VeryDeepFunction() (int, error) {
err := doSomethingThatCouldCauseError()
if err != nil {
errMsg := fmt.Sprintf("something bad happened: %+v", err)
log.Error().Msgf(errMsg)
return 0, fmt.Errorf(errMsg)
}
return 1, nil
}
这对我来说是多余的——格式化字符串,用 zerolog 归档,然后再次包装错误。有没有更正确的方法来做到这一点?
HUWWW
相关分类