前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >GORM慢查询、SQL日志与Go项目日志的整合与串联

GORM慢查询、SQL日志与Go项目日志的整合与串联

作者头像
KevinYan
发布2024-11-28 20:56:04
发布2024-11-28 20:56:04
14900
代码可运行
举报
文章被收录于专栏:网管叨bi叨
运行总次数:0
代码可运行

上节内容我们详细讲解了Go项目中GORM的下载安装、初始化、读写分离和多数据源方面的内容。仅就功能来说做完这些工作后项目对Gorm的集成已经完成了,实际上有些项目确实也是这样做的。上篇文章在末尾我们提了句如果仅集成到这个程度,功能开发完全没有问题,但如果你还要长期维护项目的话,那么问题可大了去了。

原因是,GORM产生的SQL记录、慢查询、以及数据库错误都是通过GORM自身的GormLogger写到日志的,而且GormLogger默认是写到标准输出的。。。而不是项目本身的日志文件里,这样一来如果真的是SQL错误、慢查询等导致的Bug,你只能知道发生Error了,但是在项目日志里却找不到Error的明细,那你解决BUG就只能靠猜和试啦。

所以这节内容我们介绍怎么把GORM日志和项目日志整合到一起,让你拥有下面这样的SQL详细信息

代码语言:javascript
代码运行次数:0
复制
{
    "level": "debug",
    "ts": "2024-10-09T17:09:07.603+0800",
    "msg": "SQL DEBUG",
    "sql": "INSERT INTO `orders` (`user_id`,`bill_money`,`order_no`,`state`,`is_del`,`created_at`,`updated_at`) VALUES (123453453,20,'20240627596615375920904456',1,0,'2024-10-09 17:09:07.586','2024-10-09 17:09:07.586')",
    "rows": 1,
    "dur(ms)": 53,
    "traceid": "19d822280c64c5ed",
    "spanid": "450ccc402492ed45",
    "pspanid": "",
    "file": "gormlog.go",
    "line": 49
}

支持慢查询、SQL错误的详细记录,在开发环境还会增加SQL DEBUG输出把执行的SQL语句输出到日志文件和控制台,方便在开发阶段进行调试和验证。

我们同样会为GORM日志注入追踪ID,把它们归因到关联的请求上下文中去。这样一旦发生数据库相关的错误,我们可以通过监控主动发现、使用错误日志中的追踪ID还能把整个请求相关的日志都检索出来,查问题也会轻松很多。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-11-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 网管叨bi叨 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档