上一节: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-日志相关推荐

  1. go语言 echo框架_如何在Go Echo Web框架中设置嵌套HTML模板

    go语言 echo框架 by Ying Kit Yuen 英杰苑 如何在Go Echo Web框架中设置嵌套HTML模板 (How to setup a nested HTML template in ...

  2. Go语言优秀Web框架

    一.框架 Beego: 一个Go语言下开源的,高性能Web框架 * https://github.com/astaxie/beego * https://beego.me Buffalo: 一个Go语 ...

  3. go 语言的web 框架

      Golang被称为云计算时代的C语言,它以其独特的优势逐渐被越来越多的公司所关注和使用.为了充分利用Golang的Web开发优势,有必要熟悉一下Go语言的web框架. 1  Beego (http ...

  4. go语言原生web框架 golang项目-书城商店

    go语言原生web框架 golang项目-书城商店 golang书城商店功能介绍 书城主页 分页展示 价格搜索 登录注册 加入购物车 购买 我的订单 查看详情 后台管理 图书管理 添加修改删除图书 订 ...

  5. go web 和java web_Go语言的Web框架比较

    这是Square工程师对几个Go语言的Web框架比较:A Comparison of Go Web Frameworks 推荐使用net/http作为入门起步的标准库,如果你需要路由方面功能,可使用G ...

  6. 急如闪电快如风,彩虹女神跃长空,Go语言高性能Web框架Iris项目实战-初始化项目ep00

    在Golang Web编程的世界里,君不言高性能则已,言高性能必称Iris.彩虹女神的名号响彻寰宇.名动江湖,单论一个快字,无人能出其右,就连以简洁轻量著称于世的Gin也难以望其项背,只见彩虹女神Ir ...

  7. 200行自定义异步非阻塞Web框架

    Python的Web框架中Tornado以异步非阻塞而闻名.本篇将使用200行代码完成一个微型异步非阻塞Web框架:Snow. 一.源码 本文基于非阻塞的Socket以及IO多路复用从而实现异步非阻塞 ...

  8. Nim 语言的web框架jester感觉像坨屎

    看了jester的源码和写出来的web网站源码, 真的是另外一种习惯. 给我一种屎一样的感觉. 也许你要说我心里只有屎了, 我会说, 按照老子的说法, 屎也是蕴含有道理的. 可能是用静态语言写web就 ...

  9. java发送post请求json格式_go语言web开发框架学习系列二:Get、Post、Put等请求及数据返回格式...

    数据请求方式的分类 所有的项目中使用的请求都遵循HTTP协议标准,HTTP协议经过了1.0和1.1两个版本的发展. HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法. HTTP ...

最新文章

  1. boost::mpl::equal_to相关的测试程序
  2. TransmittableThreadLocal 解决 线程池线程复用 无法复制 InheritableThreadLocal 的问题.
  3. Android实现圆角照片和圆形照片
  4. 微信自动回复如何实现?用 Python 就可以!
  5. python基础教程书籍-Python学习必看书籍_带你高效学习
  6. 2010年通信展的总结
  7. 【干货】高盛合伙人制度和激励机制!
  8. EndnoteX9修改风格
  9. USB HUB控制晶片介绍
  10. wifi ap6212驱动移植及调试分析技术笔记
  11. 模电(八)放大电路静态工作点的稳定性
  12. 2020icpc上海赛G题 Fibonacci详解
  13. 电脑蓝屏造成的数据丢失如何恢复
  14. STL — 迭代器设计思维(二)
  15. php文本转图片自动换行功能
  16. Json格式的解析,JsonObject、JSONArray
  17. 神经性脚臭案例整理(三)
  18. fooview辅助功能 shell_FV浮动阅览器fooView——一款功能十分强大的浮动按钮
  19. 卡尔曼滤波实现java
  20. Ubuntu18上安装搜狗输入法

热门文章

  1. 进一步理解:inline-block,vertical-align,line-height
  2. ios学习笔记block回调的应用(一个简单的例子)
  3. 用SD卡下载uboot、linux内核和文件系统
  4. Ext.form.field.ComboBox组合框
  5. python opencv立体测距 立体匹配BM算法
  6. TMDS——最小化传输差分信号及其协议
  7. 机器视觉行业市场现状及发展前景分析
  8. 【图像处理】——Python实现图像加噪(随机噪声、椒盐噪声、高斯噪声等)
  9. binaryoperator java_BinaryOperatorT接口的用法示例
  10. face alignment by 3000 fps系列学习总结