Golang GinWeb之自定义日志格式和输出方式/启禁日志颜色的方法是什么
发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,这篇文章主要介绍"Golang GinWeb之自定义日志格式和输出方式/启禁日志颜色的方法是什么",在日常操作中,相信很多人在Golang GinWeb之自定义日志格式和输出方式/启禁日志颜色的方法是
千家信息网最后更新 2025年01月23日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安全错误
数据库的锁怎样保障安全
公共信息网络安全监查
科技与互联网前景的演讲
一年经验软件开发工资多少钱
软件开发工程师需要证书么
深圳游戏软件开发商公司
服务器信息服务器管理设置
创建数据库操作题
常见的数据库有什么
笔记本电脑主板改装nas服务器
网络安全个人计划
运算卡在服务器上怎么用集显输出
定位软件开发电话手机号
网络安全答案题库
软件开发渐进模型
数据库和文件双写一致性
两个dbf数据库替换命令
万象sql 会员数据库
数据库应用系统的开发过程
免费空间服务器
外部文件怎么导入数据库
服务器怎么查看昨晚几点掉电的
通信信息网络技术专业就业前景
山东优渠加网络技术有限公司
软件开发入门必读书籍
汇星海智能分析服务器
互联网科技类产品
Access数据库讨论
校园网络安全周小结
机器人网络技术与应用
国外互联网科技公司