当前位置: 首页 > news >正文

闵行做网站公司网站建设趣味解读

闵行做网站公司,网站建设趣味解读,可拖动网站,品牌网首页本文介绍通过 pgx库集成sentry, pgx 特点是速度快,可以完全控制,并且支持所有 postgres 数据类型。 pgx地址: https://github.com/jackc/pgx 最简单的接入方式是自定义一个logger, 然后注入到pgx, 完整示…

本文介绍通过 pgx库集成sentry, pgx 特点是速度快,可以完全控制,并且支持所有 postgres 数据类型。

pgx地址: https://github.com/jackc/pgx

最简单的接入方式是自定义一个logger, 然后注入到pgx, 完整示例如下

package mainimport ("context""log""os""time""github.com/getsentry/sentry-go""github.com/jackc/pgx/v4""github.com/jackc/pgx/v4/log/logrusadapter""github.com/jackc/pgx/v4/pgxpool""github.com/sirupsen/logrus"
)// TracingLogger does two things at once, logging and tracing
type TracingLogger struct {logger *logrusadapter.Logger
}func NewTracingLogger(logger logrus.FieldLogger) *TracingLogger {return &TracingLogger{logger: logrusadapter.NewLogger(logger)}
}func (l *TracingLogger) Log(ctx context.Context, level pgx.LogLevel, msg string, data map[string]interface{}) {l.logger.Log(ctx, level, msg, data)span := sentry.StartSpan(ctx, "postgres "+msg)defer span.Finish()if data != nil {if span.Data == nil {span.Data = make(map[string]interface{})}for key, value := range data {value, ok := value.(string)if ok {span.Data[key] = value}}// since this method is called after a query is done,// we need to correct span start timeexecTime, ok := data["time"].(time.Duration)if ok {span.StartTime = time.Now().Add(-execTime)}}
}func main() {err := sentry.Init(sentry.ClientOptions{Debug:              true,Dsn:                "https://a5eac4fa3396cbfac8fb4baa6a9c03a3@o4504291071688704.ingest.sentry.io/4506715873804288",AttachStacktrace:   true,EnableTracing:      true,SampleRate:         1.0,TracesSampleRate:   1.0,ProfilesSampleRate: 1.0,})if err != nil {log.Fatalf("sentry.Init: %s", err)}defer sentry.Flush(2 * time.Second)config, err := pgxpool.ParseConfig(os.Getenv("DATABASE_URL"))if err != nil {log.Fatal(err)}logger := logrus.New()config.ConnConfig.Logger = NewTracingLogger(logger)conn, err := pgxpool.ConnectConfig(ctx, config)if err != nil {log.Fatal(err)}defer conn.Close()ctx := context.Background()tx := sentry.StartTransaction(ctx, "test_pgx")defer tx.Finish()ctx = tx.Context()err = conn.QueryRow(ctx, "SELECT 1").Scan()if err != nil {log.Fatal(err)}
}

参考:
https://anymindgroup.com/news/tech-blog/15724/

http://www.yayakq.cn/news/969695/

相关文章:

  • 青岛建设网站设计公司普通网站建设多少钱
  • 设计类网站排名长沙网站建设王道下拉棒
  • 做网站项目实例域名推荐
  • 金融网站框架模板下载安装网站建设参考文献英文书籍
  • 新开传奇网站发布网孞工业设计公司logo
  • 全屏网站模版怎么登录微信小程序平台
  • 手机网站宽度多少合适做网站时如何去掉网站横条
  • 长沙网站优化外包失信人员黑名单查询
  • 清远做网站的公司WordPress仿站助手
  • 快速建站教程网爱拍怎么创建wordpress
  • 深圳华南城网站建设上海网站平台建设
  • 怎么上传网站程序wordpress文章分页代码
  • 泉州网站建设网络推广移动网站建设流程
  • 台州集团网站建设做门户网站开发的技术
  • 营销型网站有那些网站北京通州网站设计公司
  • 做网站自己装服务器桥梁建设杂志有假网站吗
  • 做问卷的几个网站网级移动营销app下载
  • 东莞网站se印刷网站源码
  • 甘肃网站备案审核时间企业网站需要多少钱
  • 成都定制网站建设四川成都进出口贸易公司
  • 网站建设需要确定的问题优设网站怎么下载
  • 英文营销型网站建设萧山建设银行招聘网站
  • 办公室门户网站建设和管理工作做外贸公司网站怎么做
  • 360网站做二维码百度热度指数排行
  • 深圳网站优化培训wordpress 加宽文章页
  • 容桂网站制作公司网站的备案号在哪
  • 南昌网站建设公司资讯应用公园是收费还是免费的
  • 大型网站开发实战广州地址设计网站
  • 上海私人网站建设上海 网站制作
  • 安徽专业网站建设检修建设单位应该关注的网站