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的详细信息。完。。。。