golang 根據啟動命令切換不同資料庫以及在中介軟體中捕獲異常記錄日誌
阿新 • • 發佈:2019-02-16
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) } } }