【问题标题】:Is there a way to output sentry messages to the console有没有办法将哨兵消息输出到控制台
【发布时间】:2020-06-04 16:10:16
【问题描述】:

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

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

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

【问题讨论】:

    标签: go sentry


    【解决方案1】:

    我想出了一个解决方案——输出非常冗长,但这正是我(目前)正在寻找的。我只是提供了自己的传输实现并将其传递给 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
    }
    

    【讨论】:

      猜你喜欢
      • 2019-01-16
      • 2012-05-13
      • 2020-08-05
      • 1970-01-01
      • 2012-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多