3 回答
TA贡献1898条经验 获得超8个赞
fmt.Errorf()创建一个错误对象。但不打印。文档
如果您只是想将消息打印到标准输出: 运行
package main
import (
"fmt"
)
func main() {
const name, id = "bueller", 17
err := fmt.Errorf("user %q (id %d) not found", name, id)
fmt.Println(err.Error())
}
出去:
user "bueller" (id 17) not found
如果你想调试 golang 代码,我建议使用日志包,例如: zerolog
package main
import (
"errors"
"github.com/rs/zerolog"
"github.com/rs/zerolog/log"
)
func main() {
// UNIX Time is faster and smaller than most timestamps
zerolog.TimeFieldFormat = zerolog.TimeFormatUnix
err := errors.New("seems we have an error here")
log.Error().Err(err).Msg("this is an error")
}
出去:
{"level":"error","error":"seems we have an error here","time":1640795128,"message":"this is an error"}
TA贡献1824条经验 获得超8个赞
fmt.Errorf创建一个error对象;它不打印。
从文档中fmt.Errorf:
func Errorf(format string, a ...interface{}) error如果您只是想将消息打印到标准输出:
fmt.Printf("Object(%q).CopierFrom(%q).Run: %v\n", dstName, object, err)如果您想写入错误日志,我建议您查看log包。例如,如果您要写入 stderr:
logger := log.New(os.Stderr, "my-app", 0)
logger.Printf("Object(%q).CopierFrom(%q).Run: %v", dstName, object, err)TA贡献1802条经验 获得超5个赞
fmt.Errorf创建一个错误 - 函数返回的理想选择 - 但它没有被隐式记录。
如果您想简单地记录错误:
log.Printf("api X: error %v", err)- 3 回答
- 0 关注
- 262 浏览
添加回答
举报
