golang 根据启动命令切换不同数据库以及在中间件中捕获异常记录日志

博客介绍了Golang根据dataBase参数选择线上或线下环境,启动命令为go run main.go -MySql=true。使用github.com/pkg/errors包包装异常错误,当路由函数出现错误panic时,中间件捕获异常,日志采用log4go记录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

dataBase := flag.Bool("MySql",false,"true :线上,false: 线下 默认:false")
	flag.Parse()
	//*dataBase=true
	db.InitDB(*dataBase) //初始化数据库

根据 dataBase 参数来判断取线上或者线下

启动命令为 :go run main.go  -MySql=true 

 

对异常错误进行包装使用了 github.com/pkg/errors 包

在使用此路由下的函数出现错误panic掉的时候会触发中间件的捕获异常函数,在中间件中

defer webgo.TryCatch()

 

日志使用的是log4go来记录

func TryCatch()  {
	if e := recover(); e != nil {
		if e := recover(); e != nil {
			var err error
			switch x := e.(type) {
			case error:
				err = x
			case string:
				err = errors.New(x)
			default:
				err = errors.New("UnKnow panic")
			}
			error := errors.Wrap(err, "")
			Error("%+v\n", error)
		}
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值