1、背景

    sentry日志监控系统对很多编程语言及框架提供了一套完整的接入方案,但是,如果你的golang系统使用的是zap记录日志,那不好意思,sentry官方是没有提供解决方案的。网上对于这块的知识还不是很健全,且看且珍惜。


2、关键

    使用github开源库zapsentry,该库打通了zap和sentry之间的障碍,只需要使用zapsentry加入一些配置就可以轻松实现。


4、安装zapsentry

    

go get github.com/TheZeroSlave/zapsentry

5、代码实现

    准备工作:1.根据自己的需求自行搭建zap.Logger相关源代码; 2.获取sentry日志监控系统中的DSN,不清楚的可以翻看我公众号的文章,有相关指导说明。

func xxxxxx(log *zap.Logger) *zap.SugaredLogger{
var cfg = zapsentry.Configuration{
    Level:             zapcore.ErrorLevel,  // 发送日志级别
EnableBreadcrumbs: true,
    BreadcrumbLevel:   zapcore.ErrorLevel,  
}
  sentryDsn := config.GetString("sentry dsn")  // DSN:sentry创建golang项目会提供
core, err := zapsentry.NewCore(cfg, zapsentry.NewSentryClientFromDSN(sentryDsn))


log = log.With(zapsentry.NewScope())


if err != nil {
log.Warn("failed to init zap", zap.Error(err))
}
return zapsentry.AttachCoreToLogger(core, log).Sugar()
}


完成配置后重启项目,当项目中出现error级别的日志,那么你的sentry日志监控系统中也会显示error的详细信息。完。。。。