【发布时间】:2021-08-21 11:09:39
【问题描述】:
这是将输入的值转换为 JSON 格式的代码。它显示了正确的输出,但我想存储该输出并使用fmt.Printf返回它
package main
import (
log "github.com/sirupsen/logrus"
)
func main() {
log.SetFormatter(&log.JSONFormatter{})
standardFields := log.Fields{
"Number of threads": "1",
"Odd number": "3",
}
log.WithFields(standardFields).Info("Golang")
}
【问题讨论】:
-
你为什么要这么做?
-
logrus(与其他 99.9% 的日志记录包一样)支持“记录器”的概念,它是一个配置的对象,它以特定的方式执行记录;记录器有一个“输出”,它是一个io.Writer,负责存储要存储的序列化字节——参见this。因此,请创建一个具有合适输出的记录器实例(例如,bytes.Buffer就可以了)并收工。 -
这看起来是一个非常清晰的 XY 问题。你的目标是什么?例如,如果目标是测试日志记录,请使用 test logger。如果它是为了按照您想要的方式格式化您的日志,请使用custom formatter。如果您的目标是将这些“值”插入数据库或其他东西,您应该编写自己的记录器后端。
标签: go logging error-logging logrus