1. 程式人生 > >golang 根據啟動命令切換不同資料庫以及在中介軟體中捕獲異常記錄日誌

golang 根據啟動命令切換不同資料庫以及在中介軟體中捕獲異常記錄日誌

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