首页 > 其他分享 >golang Gin框架 自定义日志形式

golang Gin框架 自定义日志形式

时间:2023-08-18 09:35:51浏览次数:37  
标签:Use 自定义 gin param golang func router Gin

func main() {
	router := gin.New()
	// LoggerWithFormatter middleware will write the logs to gin.DefaultWriter
	// By default gin.DefaultWriter = os.Stdout
	router.Use(gin.LoggerWithFormatter(func(param gin.LogFormatterParams) string {
		// your custom format
		return fmt.Sprintf("%s - [%s] \"%s %s %s %d %s \"%s\" %s\"\n",
				param.ClientIP,
				param.TimeStamp.Format(time.RFC1123),
				param.Method,
				param.Path,
				param.Request.Proto,
				param.StatusCode,
				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")
}
::1 - [Fri, 07 Dec 2018 17:04:38 JST] "GET /ping HTTP/1.1 200 122.767µs "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.80 Safari/537.36" "

标签:Use,自定义,gin,param,golang,func,router,Gin
From: https://www.cnblogs.com/pphboy/p/17639499.html

相关文章

  • AtCoder Beginner Contest 311 - D(思维题)
    目录D-GridIceFloorABC简单题D思维题D-GridIceFloor题意给定一个\(n\timesm\)的矩阵,矩阵每个位置上的字符要么是'.'要么是'#',保证矩阵的最外围一圈都是'#'。玩家初始位于位置(2,2)。玩家可以进行移动,但是移动有条件:玩家首先选定一个移动方向,之后在这个方......
  • gophercloud+gin入门openstack二次开发
    什么是gophercloudgophercloud是一个用于与OpenStack和其他云平台进行交互的Go语言开发工具包。它提供了一组简单易用的API来管理虚拟机、网络、存储和身份认证等云资源。通过gophercloud,开发人员可以轻松地创建、删除、查询和管理云资源,实现自动化和可扩展的云计算应用程序。它提......
  • python 中如何快速查看代码的性能 DebugInfo 秒表装饰器
    背景我们在python编程时,在有性能优化需求的场景下,我们可能一个需求存在多个解决方案的情况,这些解决方案可能在不同的模块/库中实现。那么对于可以实现两样的功能,但实现方式不同的情况下,我们直接测试一下每个方式的运行性能,是最直观评估不同的实现方案性能的办法。一般解决方法......
  • 使用MSIX Packaging Tool工具修改msix程序包
    前言MSIXPackagingTool使用户和IT管理员能够将Windows应用重新打包为MSIX格式,方便用户分享,MSIX包可在Windows11和Windows10系统中安装。该软件提供了一个交互式用户界面和一个用于转换的命令行。修改步骤1、获取MSIXPackagingToolWindows10通过应用商店获取......
  • WPF --- 非Button自定义控件实现点击功能
    引言今天在做一个设置文件夹路径的功能,就是一个文本框,加个按钮,点击按钮,弹出FolderBrowserDialog再选择文件夹路径,简单做法,可以直接StackPanel横向放置一个TextBox和一个ImageButton,然后点击按钮在后台代码中给ViewModel的FilePath赋值。但是这样属实不够优雅,UI不够......
  • Java踩坑1.Plugin org.apache.maven.plugins:maven-install-plugin:2.5 could not
    首次运行maveninstall或任何一个插件时,报错:Downloadingfromhuaweicloud:https://repo.huaweicloud.com/repository/maven/org/apache/maven/plugins/maven-install-plugin/2.5/maven-clean-plugin-2.5.pom[INFO]---------------------------------------------------------......
  • Python实现自定义请求头消息headers
    使用python爬虫爬取数据的时候,经常会遇到一些网站的反爬虫措施,一般就是针对于headers中的User-Agent,如果没有对headers进行设置,User-Agent会声明自己是python脚本,而如果网站有反爬虫的想法的话,必然会拒绝这样的连接。而修改headers可以将自己的爬虫脚本伪装成浏览器的正常访问,来......
  • 为远程群晖NAS的自定义域名免费申请SSL证书
    概述ERP系统对于企业来说重要性不言而喻,不管是财务、生产、销售还是采购,都需要用到ERP系统来协助。但ERP中这些重要数据属于企业机密文档,往往需要本地化管理,只能部署在企业内网之下。有时候我们会遇到在外需要远程登录ERP临时处理紧急事务,我们可以通过内网穿透来解决,将ERP服务端端......
  • 如何阅读并学习 MegEngine 的代码
    旷视开源的深度学习框架 MegEngine,MegEngine是一个快速、可拓展、易于使用且支持自动求导的深度学习框架。以最新的release版本release-1.13.0为例介绍一下MegEngine的代码结构以及如何学习MegEngine的代码。1.编译对于学习大型项目,我们建议源码编译项目而不是直接安装......
  • gin框架常用模块
    一、gin框架常用模块1、将收到的httppost请求中body参数转换为对象funcUploadConfig(c*gin.Context){ p:=mconfig.CoursewareParam{} iferr:=c.ShouldBindJSON(&p);err!=nil{ log.Error("发布课件配置body解析报错,错误信息:",err) comm.SetResultMsg(c,1,s......