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)
}
}
}