go json 自定义_Go语言Echo Web框架9-日志
上一节:Go语言Echo Web框架8-JWT 这一节介绍日志
echo自带的日志中间件记录有关每个HTTP请求的信息
日志
日志中间件
用法
e.Use(middleware.Logger())
样本输出
{ "time":"2020-09-13T21:58:07.372015644-08:00", "remote_ip":"::1", "host":"localhost:1323", "method":"GET", "uri":"/","status":200, "error":"", "latency":1474 , "latency_human":"14.743µs", "bytes_in":0, "bytes_out":2}
自定义输出数据结构
用法
e.Use(middleware.LoggerWithConfig(middleware.LoggerConfig{ Format: "method=${method}, uri=${uri}, status=${status}",}))
上面的列子使用Format输出请求方法,请求路径,以及状态。
输出例子:
method=GET, uri=/, status=200
日志中间的配置
LoggerConfig struct { // Skipper defines a function to skip middleware. Skipper Skipper // Tags to constructed the logger format. // // - time_unix // - time_unix_nano // - time_rfc3339 // - time_rfc3339_nano // - id (Request ID) // - remote_ip // - uri // - host // - method // - path // - referer // - user_agent // - status // - error // - latency (In nanoseconds) // - latency_human (Human readable) // - bytes_in (Bytes received) // - bytes_out (Bytes sent) // - header: // - query: // - form: // - cookie: // // Example "${remote_ip} ${status}" // // Optional. Default value DefaultLoggerConfig.Format. Format string `json:"format"` // Output is a writer where logs are written. // Optional. Default value os.Stdout. Output io.Writer }
日志输出自定义的json数据
用法
func HelloHandler(c echo.Context) error { // 创建日志,记录 a := log.JSON{"params": c.QueryParams()} c.Logger().Printj(a) }
上面的例子,我们可以自定义日志信息输出。
输出例子
{ "time":"2020-09-15T09:47:22.371250423+08:00", "level":"-"," prefix":"echo","file":"ticaiHandler.go","line":"21","params":{"pageNo":["1"],"pageSize":["10"]}}
echo自带的日志中间件的功能在日常开发中已经足够使用。
日志跟踪
在项目开发中,都不可避免的使用到日志。没有日志虽然不会影响项目的正确运行,但是没有日志的项目可以说是不完整的。日志在调试,错误或者异常定位,数据分析中的作用是不言而喻的。
1. 记录用户操作的审计日志,甚至有的时候就是监管部门的要求。
2. 快速定位问题的根源
3. 追踪程序执行的过程。
4. 追踪数据的变化
5. 数据统计和性能分析
6. 采集运行环境数据
对应视频演示:Go语言Echo Web框架9_视频_日志
下一节:Go语言Echo Web框架10-文件上传下载
go json 自定义_Go语言Echo Web框架9-日志相关推荐
- go语言 echo框架_如何在Go Echo Web框架中设置嵌套HTML模板
go语言 echo框架 by Ying Kit Yuen 英杰苑 如何在Go Echo Web框架中设置嵌套HTML模板 (How to setup a nested HTML template in ...
- Go语言优秀Web框架
一.框架 Beego: 一个Go语言下开源的,高性能Web框架 * https://github.com/astaxie/beego * https://beego.me Buffalo: 一个Go语 ...
- go 语言的web 框架
Golang被称为云计算时代的C语言,它以其独特的优势逐渐被越来越多的公司所关注和使用.为了充分利用Golang的Web开发优势,有必要熟悉一下Go语言的web框架. 1 Beego (http ...
- go语言原生web框架 golang项目-书城商店
go语言原生web框架 golang项目-书城商店 golang书城商店功能介绍 书城主页 分页展示 价格搜索 登录注册 加入购物车 购买 我的订单 查看详情 后台管理 图书管理 添加修改删除图书 订 ...
- go web 和java web_Go语言的Web框架比较
这是Square工程师对几个Go语言的Web框架比较:A Comparison of Go Web Frameworks 推荐使用net/http作为入门起步的标准库,如果你需要路由方面功能,可使用G ...
- 急如闪电快如风,彩虹女神跃长空,Go语言高性能Web框架Iris项目实战-初始化项目ep00
在Golang Web编程的世界里,君不言高性能则已,言高性能必称Iris.彩虹女神的名号响彻寰宇.名动江湖,单论一个快字,无人能出其右,就连以简洁轻量著称于世的Gin也难以望其项背,只见彩虹女神Ir ...
- 200行自定义异步非阻塞Web框架
Python的Web框架中Tornado以异步非阻塞而闻名.本篇将使用200行代码完成一个微型异步非阻塞Web框架:Snow. 一.源码 本文基于非阻塞的Socket以及IO多路复用从而实现异步非阻塞 ...
- Nim 语言的web框架jester感觉像坨屎
看了jester的源码和写出来的web网站源码, 真的是另外一种习惯. 给我一种屎一样的感觉. 也许你要说我心里只有屎了, 我会说, 按照老子的说法, 屎也是蕴含有道理的. 可能是用静态语言写web就 ...
- java发送post请求json格式_go语言web开发框架学习系列二:Get、Post、Put等请求及数据返回格式...
数据请求方式的分类 所有的项目中使用的请求都遵循HTTP协议标准,HTTP协议经过了1.0和1.1两个版本的发展. HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法. HTTP ...
最新文章
- boost::mpl::equal_to相关的测试程序
- TransmittableThreadLocal 解决 线程池线程复用 无法复制 InheritableThreadLocal 的问题.
- Android实现圆角照片和圆形照片
- 微信自动回复如何实现?用 Python 就可以!
- python基础教程书籍-Python学习必看书籍_带你高效学习
- 2010年通信展的总结
- 【干货】高盛合伙人制度和激励机制!
- EndnoteX9修改风格
- USB HUB控制晶片介绍
- wifi ap6212驱动移植及调试分析技术笔记
- 模电(八)放大电路静态工作点的稳定性
- 2020icpc上海赛G题 Fibonacci详解
- 电脑蓝屏造成的数据丢失如何恢复
- STL — 迭代器设计思维(二)
- php文本转图片自动换行功能
- Json格式的解析,JsonObject、JSONArray
- 神经性脚臭案例整理(三)
- fooview辅助功能 shell_FV浮动阅览器fooView——一款功能十分强大的浮动按钮
- 卡尔曼滤波实现java
- Ubuntu18上安装搜狗输入法
热门文章
- 进一步理解:inline-block,vertical-align,line-height
- ios学习笔记block回调的应用(一个简单的例子)
- 用SD卡下载uboot、linux内核和文件系统
- Ext.form.field.ComboBox组合框
- python opencv立体测距 立体匹配BM算法
- TMDS——最小化传输差分信号及其协议
- 机器视觉行业市场现状及发展前景分析
- 【图像处理】——Python实现图像加噪(随机噪声、椒盐噪声、高斯噪声等)
- binaryoperator java_BinaryOperatorT接口的用法示例
- face alignment by 3000 fps系列学习总结