您好,登錄后才能下訂單哦!
這篇文章主要介紹“Golang GinWeb之自定義日志格式和輸出方式/啟禁日志顏色的方法是什么”,在日常操作中,相信很多人在Golang GinWeb之自定義日志格式和輸出方式/啟禁日志顏色的方法是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Golang GinWeb之自定義日志格式和輸出方式/啟禁日志顏色的方法是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
記錄日志到文件
利用io.MultiWriter多寫出器可以實現日志記錄到文件的同時也輸出到控制臺
package main import ( "github.com/gin-gonic/gin" "io" "os" ) func main() { // Disable Console Color, you don't need console color when writing the logs to file. // 禁用控制臺日志顏色,日志寫到文件的時候,不需要打開控制臺日志顏色 gin.DisableConsoleColor() // Logging to a file. 新建日志文件,得到文件結構,文件結構實現了寫出器Writer接口 f, _ := os.Create("gin.log") //io.MultiWriter(多寫出器方法)創建一個寫出器, 將傳入的多個寫出器追加為一個寫出器數組, 得到的寫出器實現了Writer接口, 它會將需要寫出的數據寫出到每個寫出器, 就像Unix命令tee,會將數據寫入文件的同時打印到標準輸出 //配置Gin默認日志寫出器為得到的多寫出器 gin.DefaultWriter = io.MultiWriter(f) // Use the following code if you need to write the logs to file and console at the same time. // 使用下面的代碼,將日志寫入文件的同時,也輸出到控制臺 // gin.DefaultWriter = io.MultiWriter(f, os.Stdout) router := gin.Default() router.GET("/ping", func(c *gin.Context) { c.String(200, "pong") }) router.Run(":8080") }
自定義日志格式
利用Gin的LoggerWithFormatter方法實例化一個日志器Logger中間件,并帶有指定的日志格式
package main import ( "fmt" "github.com/gin-gonic/gin" "time" ) func main() { router := gin.New() // LoggerWithFormatter middleware will write the logs to gin.DefaultWriter // By default gin.DefaultWriter = os.Stdout // type LogFormatter func(params LogFormatterParams) string 這里的LogFormatterParams是一個格式化日志參數的結構體 router.Use(gin.LoggerWithFormatter(func(param gin.LogFormatterParams) string { // your custom format // 127.0.0.1 - [Sun, 22 Nov 2020 17:09:53 CST] "GET /ping HTTP/1.1 200 56.113µs "curl/7.64.1" " return fmt.Sprintf("%s - [%s] \"%s %s %s %d %s \"%s\" %s\"\n", param.ClientIP, //請求客戶端的IP地址 param.TimeStamp.Format(time.RFC1123), //請求時間 param.Method, //請求方法 param.Path, //路由路徑 param.Request.Proto, //請求協議 param.StatusCode, //http響應碼 param.Latency, //請求到響應的延時 param.Request.UserAgent(), //客戶端代理程序 param.ErrorMessage, //如果有錯誤,也打印錯誤信息 ) })) router.Use(gin.Recovery()) router.GET("/ping", func(c *gin.Context) { c.String(200, "pong") }) router.Run(":8080") } //模擬請求測試: curl http://localhost:8080/ping
打開/禁用日志顏色
gin.DisableConsoleColor() 禁用日志顏色
gin.ForceConsoleColor() 強制開啟日志顏色, 采用虛擬終端TTY顏色方案
package main import ( "github.com/gin-gonic/gin" ) func main() { // 默認輸出到控制臺的日志顏色是根據您使用的虛擬終端TTY來著色的 // Disable log's color 禁用日志顏色 gin.DisableConsoleColor() // Force log's color 強制開啟日志顏色 //gin.ForceConsoleColor() // Creates a gin router with default middleware: // logger and recovery (crash-free) middleware router := gin.Default() router.GET("/ping", func(c *gin.Context) { c.String(200, "pong") }) router.Run(":8080") } //模擬請求測試: curl http://localhost:8080/ping
到此,關于“Golang GinWeb之自定義日志格式和輸出方式/啟禁日志顏色的方法是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。