我有很多使用 zerolog 的 golang 应用程序,它们将日志错误/信息等写入本地服务器上的文件中。
我在一家国际合作公司工作,该公司决定使用 datadog 进行日志记录。合作决定是使用跟踪器而不是dogstatsd。
我已获得以下示例代码:
import ( ... "gopkg.in/datadog/dd-trace-go.v1/ddtrace/tracer" ) func main(){ ... tracer.start( tracer.withservice("cvr-service"), // specify the service name tracer.withenv("stage"), // specify the env tracer.withserviceversion("2.0"), ) defer tracer.stop() mux := httptrace.newservemux() mux.handlefunc("/", func(w http.responsewriter, r *http.request) { w.write([]byte("cvr-service-started!")) }) http.listenandserve(":8080", mux) }
据我阅读,datadog 文档跟踪器用于测量性能或请求,示例主要位于 http 上 requests 并且我还没有找到日志记录错误的示例。我的许多应用程序也不使用 http。我进行了无休止的谷歌搜索,但没有找到任何可用的东西。中央合作支持无法解决我的问题。
有什么方法可以将零日志注入跟踪器或反向吗?例如:
f := some_kind_of_iowriter_from_tracer() logger := zerolog.New(f).With().Timestamp().Logger() r, err := Myfunc() if err != nil { logger.Panic().Err(err).Msg("HELP") }
如果不是,我如何使用跟踪器来记录错误(和信息)?
或者使用 datadog 追踪器来达到这个目的是不可能完成的任务吗?
跟踪是 APM 的一部分,用于检测代码以测量特定方法和依赖项的性能并深入了解代码的运行方式。摄取日志是日志管理的一部分。您需要使用 Datadog 代理或创建某种转发来跟踪日志文件并通过 HTTP API。