Gin新增基於logrus的日誌元件

2021-10-10 21:23:48 字數 1521 閱讀 4988

在web應用中,日誌是非常重要的一部分資料,通過日誌我們可以把控每天的請求情況和應用運**況,還能夠大大方便我們定位和追蹤問題,所以非常有必要在開發時為gin框架加入日誌元件

logrus是go語言一款非常流行的日誌庫,其中封裝了非常多方便易用的方法,所以我們也基於這個庫來進行實現。

需要實現的功能有:

直接上**

第一步:封裝logger元件

初始化weblog

*/func initweblog()

/** 初始化日誌控制代碼

*/func initlog(logfilename string) *logrus.logger

logpath := "logs/"

logname := logpath + logfilename

var f *os.file

var err error

//判斷日誌檔案是否存在,不存在則建立,否則就直接開啟

if _, err := os.stat(logname); os.isnotexist(err) else

if err != nil

log.out = f

log.level = logrus.infolevel

return log

}/**

gin中介軟體函式,記錄請求日誌

*/func loggertofile() gin.handlerfunc ).info("access")

}}第二步:在路由中新增中介軟體

r :=gin.new()

r.use(logger.loggertofile())

或者是這樣的**,看你如何使用路由

r:= gin.default() //

r.use(logger.loggertofile())

這樣當有請求的時候,就會在logs/web.log下面記錄一條這樣的日誌

第三步:在業務中記錄日誌

例如在某個報錯後記錄異常日誌

exist, err := redis.bool(conn.do("exists", key))

if err != nil ).errorf("key exists execute redis cmd fail [%v]",err)

return false

}

這樣會記錄一條這樣的日誌

基於Gin的go webserver示例工程

說明 本工程為最近本示例工程,沒有新增專案需要的啟動引數,沒有與資料庫的互動,user物件的定義也只是個示例。但是包含了從query path 以及body獲取引數的示例。整體工程在這裡 結構 啟動引數 log file c f ginportdemo.log logtostderr false a...

基於GIN的API介面從開發到部署 簡單示例

使用go mod 管理專案,可以更加靈活的在專案中管理對應的go包 新建專案gorestful,建立資料夾,路徑 e 1234 gorestful 進入目錄 e 1234 gorestful 裡,新建入口檔案 main.go 在 e 1234 gorestful 裡開啟終端執行命令 go mod i...

動態新增的layui date標籤,不彈出日期選擇

之前有一篇文章提到動態新增 刪除一行的實現方法 其中我在table裡有laydate元素,動態新增的laydate不彈出日期選擇,根據class渲染的時候會出現出了第乙個可以正常顯示,別的都閃退的情況。最終是在每次新增的時候都對新新增的元素進行id重新渲染才解決的。為了避免id重複,給了乙個隨機數。...