Golang GinWeb之自定义日志格式和输出方式/启禁日志颜色的方法是什么
发表于:2024-10-17 作者:千家信息网编辑
千家信息网最后更新 2024年10月17日,这篇文章主要介绍"Golang GinWeb之自定义日志格式和输出方式/启禁日志颜色的方法是什么",在日常操作中,相信很多人在Golang GinWeb之自定义日志格式和输出方式/启禁日志颜色的方法是
千家信息网最后更新 2024年10月17日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安全错误
数据库的锁怎样保障安全
江苏兔子软件开发怎么做
软件开发员项目经理
把概念数据库
南通通用软件开发资费
数据库坐标图
2021网络安全宣传周直播回放
pe我的世界服务器搭建
金融网络安全宣传手册
QQFS数据库规范
湖北快商网络技术有限公司
三级网络技术无纸化真题
学软件开发的男女比例
网络安全法海报设计
甘南定制软件开发
上海屹麟网络技术
河北 软件开发公司排名
腾讯人脸服务器
服务器错误代码E8 02
长宁区信息网络技术
服务器与本地数据传递
redis 做内存数据库
自己搭建云服务器需要多少钱
微信服务器报500错误怎么解决
数据库中如何添加约束
软件开发服务税
软件开发领域趋势
我要做网络安全小卫士
广州市网络安全和信息化
办公软件开发公司费用
t6管理服务器找不到