Golang GinWeb之自定义日志格式和输出方式/启禁日志颜色的方法是什么
发表于:2024-11-26 作者:千家信息网编辑
千家信息网最后更新 2024年11月26日,这篇文章主要介绍"Golang GinWeb之自定义日志格式和输出方式/启禁日志颜色的方法是什么",在日常操作中,相信很多人在Golang GinWeb之自定义日志格式和输出方式/启禁日志颜色的方法是
千家信息网最后更新 2024年11月26日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安全错误
数据库的锁怎样保障安全
邮件服务器安装和配置
零编码软件开发平台
网络技术基础英语
不用数据库 存放文件里
信息泄漏网络安全是指
2012服务器系统
我的世界营地服务器手机
易语言pull服务器
希赛网服务器和网络存储技术
固原软件开发
BT盒子服务器码
杭州手机app软件开发怎么选
建设银行软件开发岗
浙江游戏软件开发工具
江苏扬州网络安全你我同行
gis影像数据库
双休Java软件开发助手
深圳最新的网络安全政策
四川奥派网络技术有限公司
江西省 网络安全知识玩问答
河北云信软件开发公司
注意网络安全 谨防电信诈骗
魔兽世界正式版服务器
数据库恢复麻烦吗
全美报纸数据库
办公网络安全培训试题
激活sql 2012数据库
怎样查找芒果销售数据库
临沂启辰网络技术有限公司
服务器修改密码需要重启不