Golang GinWeb之自定义日志格式和输出方式/启禁日志颜色的方法是什么
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍"Golang GinWeb之自定义日志格式和输出方式/启禁日志颜色的方法是什么",在日常操作中,相信很多人在Golang GinWeb之自定义日志格式和输出方式/启禁日志颜色的方法是
千家信息网最后更新 2026年11月02日Golang GinWeb之自定义日志格式和输出方式/启禁日志颜色的方法是什么
这篇文章主要介绍"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之自定义日志格式和输出方式/启禁日志颜色的方法是什么"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
日志
颜色
方法
输出
文件
格式
控制台
控制
方式
学习
同时
结构
客户
接口
数据
更多
终端
错误
帮助
强制
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
天津市摩尔互联网科技
互联网科技资迅
互联网科技社
互联网公司 科技公司
深圳互联网络科技有限公司
互联网未来科技
互联网科技上市公司
互联网科技产品
阿里互联网科技公司
互联网校园科技培训
互联网科技与管理
互联网与医疗科技
上海科技产业互联网平台
沐思想互联网科技有限公司
高科技互联网套路
四川互联网展示科技馆设计
科技互联网经济论坛
互联网的科技体现在哪里
杭州科技互联网公司有哪些
山东亿川互联网科技有限责任公司
广州万易互联网科技有限公司
互联网科技公司税收优惠
新华互联网科技学院
广州互联网科技公司
上海挚品互联网科技
小马过河互联网科技
欧洲十大科技互联网公司
消费医药和互联网科技
互联网科技人工智能实验室
互联网公司高科技产品