有没有办法将哨兵消息输出到控制台



我正在研究一套用golang编写的微服务。 几个月后我有一个演示,到明年这些服务应该投入生产。 现在,我只是在讨论所有基础知识和样板,包括打电话给哨兵。

所有服务都会发出多个异步请求,这些请求使多个进程启动。 如果一件事失败了,我不想惊慌失措或返回;我想继续执行,但我希望能够回去看看发生了什么。

在开发过程中,我真的不想向 Sentry 发送任何内容,但我想看看 Sentry 的输出是什么,这样我就可以确保消息、面包屑、堆栈跟踪等都按预期捕获。 这样的事情可能吗? 我尝试运行本地服务器,但它非常臃肿,它启动了大约 20 个 docker 容器并消耗了大量内存。 只是在寻找轻量级的东西,这样我就能看到发生了什么。

我想出了一个解决方案 - 输出非常冗长,但这正是我(现在(正在寻找的。 我只是提供了我自己的传输实现并将其传递给 ClientOptions:

type consoleTransport struct{}
func (t *consoleTransport) Configure(options sentry.ClientOptions) {
zap.L().Info("Sentry client initialized with an empty DSN. Using consoleTransport. No events will be delivered.")
}
func (t *consoleTransport) SendEvent(event *sentry.Event) {
b, _ := json.Marshal(event)
fmt.Println("[SENTRY CONSOLE] " + string(b))
}
func (t *consoleTransport) Flush(_ time.Duration) bool {
return true
}

最新更新