成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Golang GinWeb框架3-自定義日志格式和輸出方式/啟禁日志顏色

開發 前端
本文接著上文(Golang GinWeb框架2-文件上傳/程序panic崩潰后自定義處理方式)繼續探索GinWeb框架

 簡介

本文接著上文(Golang GinWeb框架2-文件上傳/程序panic崩潰后自定義處理方式)繼續探索GinWeb框架


記錄日志到文件

利用io.MultiWriter多寫出器可以實現日志記錄到文件的同時也輸出到控制臺

  1. package main 
  2.  
  3. import ( 
  4.   "github.com/gin-gonic/gin" 
  5.   "io" 
  6.   "os" 
  7.  
  8. func main() { 
  9.   // Disable Console Color, you don't need console color when writing the logs to file. 
  10.   // 禁用控制臺日志顏色,日志寫到文件的時候,不需要打開控制臺日志顏色 
  11.   gin.DisableConsoleColor() 
  12.   // Logging to a file.  新建日志文件,得到文件結構,文件結構實現了寫出器Writer接口 
  13.   f, _ := os.Create("gin.log"
  14.   //io.MultiWriter(多寫出器方法)創建一個寫出器, 將傳入的多個寫出器追加為一個寫出器數組, 得到的寫出器實現了Writer接口, 它會將需要寫出的數據寫出到每個寫出器, 就像Unix命令tee,會將數據寫入文件的同時打印到標準輸出 
  15.   //配置Gin默認日志寫出器為得到的多寫出器 
  16.   gin.DefaultWriter = io.MultiWriter(f) 
  17.   // Use the following code if you need to write the logs to file and console at the same time
  18.   // 使用下面的代碼,將日志寫入文件的同時,也輸出到控制臺 
  19.   // gin.DefaultWriter = io.MultiWriter(f, os.Stdout) 
  20.  
  21.   router := gin.Default() 
  22.   router.GET("/ping", func(c *gin.Context) { 
  23.     c.String(200, "pong"
  24.   }) 
  25.  
  26.   router.Run(":8080"

自定義日志格式

利用Gin的LoggerWithFormatter方法實例化一個日志器Logger中間件,并帶有指定的日志格式

  1. package main 
  2.  
  3. import ( 
  4.   "fmt" 
  5.   "github.com/gin-gonic/gin" 
  6.   "time" 
  7.  
  8. func main() { 
  9.   router := gin.New() 
  10.  
  11.   // LoggerWithFormatter middleware will write the logs to gin.DefaultWriter 
  12.   // By default gin.DefaultWriter = os.Stdout 
  13.   // type LogFormatter func(params LogFormatterParams) string 這里的LogFormatterParams是一個格式化日志參數的結構體 
  14.   router.Use(gin.LoggerWithFormatter(func(param gin.LogFormatterParams) string { 
  15.     // your custom format 
  16.     // 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" " 
  17.     return fmt.Sprintf("%s - [%s] \"%s %s %s %d %s \"%s\" %s\"\n"
  18.       param.ClientIP,                       //請求客戶端的IP地址 
  19.       param.TimeStamp.Format(time.RFC1123), //請求時間 
  20.       param.Method,                         //請求方法 
  21.       param.Path,                           //路由路徑 
  22.       param.Request.Proto,                  //請求協議 
  23.       param.StatusCode,                     //http響應碼 
  24.       param.Latency,                        //請求到響應的延時 
  25.       param.Request.UserAgent(),            //客戶端代理程序 
  26.       param.ErrorMessage,                   //如果有錯誤,也打印錯誤信息 
  27.     ) 
  28.   })) 
  29.   router.Use(gin.Recovery()) 
  30.  
  31.   router.GET("/ping", func(c *gin.Context) { 
  32.     c.String(200, "pong"
  33.   }) 
  34.  
  35.   router.Run(":8080"
  36. //模擬請求測試: curl http://localhost:8080/ping 

打開/禁用日志顏色

  • gin.DisableConsoleColor() 禁用日志顏色
  • gin.ForceConsoleColor() 強制開啟日志顏色, 采用虛擬終端TTY顏色方案
  1. package main 
  2.  
  3. import ( 
  4.   "github.com/gin-gonic/gin" 
  5.  
  6. func main() { 
  7.   // 默認輸出到控制臺的日志顏色是根據您使用的虛擬終端TTY來著色的 
  8.   // Disable log's color 禁用日志顏色 
  9.   gin.DisableConsoleColor() 
  10.  
  11.   // Force log's color 強制開啟日志顏色 
  12.   //gin.ForceConsoleColor() 
  13.  
  14.   // Creates a gin router with default middleware: 
  15.   // logger and recovery (crash-free) middleware 
  16.   router := gin.Default() 
  17.  
  18.   router.GET("/ping", func(c *gin.Context) { 
  19.     c.String(200, "pong"
  20.   }) 
  21.  
  22.   router.Run(":8080"
  23.  
  24. //模擬請求測試: curl http://localhost:8080/ping 

參考文檔

Gin官方倉庫:https://github.com/gin-gonic/gin

 

 

責任編輯:姜華 來源: 云原生云
相關推薦

2020-11-26 10:08:17

Golang GinW

2023-07-28 09:26:43

GolangZap

2009-07-07 14:32:47

JDK日志Formatter

2020-11-25 09:18:15

Golang GinW

2009-07-07 14:00:25

JDK日志Handler

2020-12-10 10:22:48

GinWeb中間件HTTPS

2020-12-08 12:05:48

Golang GinW框架HTTPS

2020-11-23 10:48:39

Golang GinW

2020-12-03 09:28:05

Golang GinW

2009-08-05 18:01:20

C#自定義異常處理

2020-12-02 11:18:28

Golang GinW

2021-05-28 08:58:41

Golang網卡metrics

2011-04-11 13:14:58

AjaxWEB服務

2023-10-31 09:10:39

2025-01-06 10:38:04

2009-06-25 14:53:35

自定義UI組件JSF框架

2009-11-05 10:38:05

Visual Stud

2022-09-20 07:01:50

對象初始化代碼

2021-01-14 19:04:36

框架數據庫mybatis

2024-11-18 09:18:21

Gin框架驗證器
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 最新国产精品视频 | 久久99精品久久久久久秒播九色 | 久久出精品 | 91视频大全| 欧美成人精品 | 欧美一二三| 日韩快播电影网 | h视频在线播放 | 999久久久免费精品国产 | 国产xxxx在线 | 久久男人| 欧美在线a | 免费激情网站 | 久草在线视频中文 | 国产一区久久 | 欧美性生活一区二区三区 | 久热久热| 黄色欧美视频 | 日韩欧美在| 男人天堂99| 亚洲一区二区三区在线播放 | 天堂色区 | 国产日产欧产精品精品推荐蛮挑 | 国产成人精品久久二区二区91 | 国产午夜精品福利 | 精品国产欧美 | 精品一二三 | 天天干天天谢 | 日本亚洲一区二区 | 久久精品国产a三级三级三级 | 影音先锋中文在线 | 中文字幕日韩在线 | 成人av电影免费在线观看 | 国产九九精品 | 熟女毛片 | 老司机67194精品线观看 | 久久性av| 一级黄色片在线免费观看 | 91麻豆精品国产91久久久更新资源速度超快 | 激情三区 | 欧美中文字幕一区二区 |