Go 如何整合哨兵
我希望捕获生产环境中的所有错误,并将它们发送给哨兵。但我不明白如何将其添加为中间件。我是否需要编写一个自定义记录器而不是实现logger.logger接口,或者我可以以不同的方式执行它?似乎您需要一个sentry日志中间件。每个大型日志库都应该有自己的中间件实现。比如说Go 如何整合哨兵,go,sentry,buffalo,Go,Sentry,Buffalo,我希望捕获生产环境中的所有错误,并将它们发送给哨兵。但我不明白如何将其添加为中间件。我是否需要编写一个自定义记录器而不是实现logger.logger接口,或者我可以以不同的方式执行它?似乎您需要一个sentry日志中间件。每个大型日志库都应该有自己的中间件实现。比如说 如果您想创建自己的日志(假设您使用的是logrus),则必须实现,然后自己将这些条目发布到sentry。似乎您需要一个sentry日志中间件。每个大型日志库都应该有自己的中间件实现。比如说 如果您想创建自己的(假设您使用的是lo
如果您想创建自己的日志(假设您使用的是logrus),则必须实现,然后自己将这些条目发布到sentry。似乎您需要一个sentry日志中间件。每个大型日志库都应该有自己的中间件实现。比如说
如果您想创建自己的(假设您使用的是logrus),您必须实现,然后将这些条目发布到sentry。谢谢,@martinni39基于您的代码和水牛手册中的代码,我创建了此功能:
func SentryLogger(lvl logger.Level) logger.FieldLogger {
l := logrus.New()
l.Level = lvl
levels := []logrus.Level{
logrus.PanicLevel,
logrus.FatalLevel,
logrus.ErrorLevel,
}
hook, err := logrus_sentry.NewSentryHook("your sentry dsn", levels)
hook.StacktraceConfiguration.Enable = true
hook.StacktraceConfiguration.IncludeErrorBreadcrumb = true
if err == nil {
l.Hooks.Add(hook)
}
return logger.Logrus{FieldLogger: l}
}
然后添加到app.go中的buffalo选项
Logger: SentryLogger(logger.DebugLevel),
谢谢,@martinni39基于您的代码和布法罗手册中的代码,我创建了此功能:
func SentryLogger(lvl logger.Level) logger.FieldLogger {
l := logrus.New()
l.Level = lvl
levels := []logrus.Level{
logrus.PanicLevel,
logrus.FatalLevel,
logrus.ErrorLevel,
}
hook, err := logrus_sentry.NewSentryHook("your sentry dsn", levels)
hook.StacktraceConfiguration.Enable = true
hook.StacktraceConfiguration.IncludeErrorBreadcrumb = true
if err == nil {
l.Hooks.Add(hook)
}
return logger.Logrus{FieldLogger: l}
}
然后添加到app.go中的buffalo选项
Logger: SentryLogger(logger.DebugLevel),
你试过看文档吗?我在官方岗哨上找到了这个。它没有合并到母版中,但我想明天试试。你看过文档了吗?我在官方岗哨上找到了这个。你能更新并将答案标记为已接受吗?你能更新并将答案标记为已接受吗