go - 有没有办法将哨兵消息输出到控制台
问题描述
我正在开发一套用 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
}
推荐阅读
- javascript - Google Speech API - 长音频文件的服务器不可用错误
- c# - epplus 读取签名 c#
- google-apps-script - 我应该等待 Google android - 附加组件审查小组的答复多长时间?
- android - flutter bloc pattren Stream Transformer 对象导致语法错误
- image - 使用带有 Matlab 代码的 Microsoft Paint
- ios - rootViewController 是否总是准备好在 application:didBecomeActive 被调用(iOS)时呈现一个segue?
- python - 从 Pandas 数据框中删除时间序列图的时间戳、日期和月份
- python - Pytest 编译时间过长
- c - 如果我已经为字符串 b 赋值,则无法将字符串 a 复制到字符串 b
- amazon-web-services - AWS Elastic Beanstalk .ebestensions/nginx/nginx.conf 没有覆盖 AWS 的默认 nginx.conf