说明

gin是通过中间件写日志, 日志对象是中间件的闭包变量。在use加载中间件完成之后,无法修改日志对象。 该如何办呢?

一般方法

以下是设置gin日志的方法

#方法一
gin.DefaultWriter = xxx
gin.DefaultErrorWriter = xxx
app := gin.Default()
app.Use(xxx)#方法二
app := gin.Default()
app.Use(gin.LoggerWithWriter(xxx))

当情况发生变化

  1. app := gin.Default()被放在了顶层模块,并且加载了默认中间件

  2. 程序真正的log在子模块中初始化

  3. 在子模块中如何修改gin的日志?

解决办法

借助zapio.Writer对象,通过修改它的Log属性实现

# 顶层模块gin.go
gin.DefaultWriter =&zapio.Writer{Log:zap.L()}
gin.DefaultErrorWriter = gin.DefaultWriter
app := gin.Default()
app.use(xxx)#子模块xxx/sim/http.go
if gl, ok := gin.DefaultWriter.(*zapio.Writer);ok{gl.Log = gs.log.Desugar()   #修改Log属性
}

佛說大乘無量壽莊嚴清淨平等覺經pdf

净土大经科注2014-doc

此生必看的科学实验-水知道答案

印光大师十念法(胡小林主讲第1集)

全局gin对象如何在子模块中修改Logger相关推荐

  1. MySQL中 修改语句使用的关键字是什么_表示修改一个数据库对象的SQL关键字是什么...

    表示修改一个数据库对象的SQL关键字是:ALTER.在数据库中,可以使用"ALTER TABLE"语句来改变原有表的结构,可以在已有的表中添加.删除或修改列. 本教程操作环境:wi ...

  2. excel html modify,在Excel 2010中修改Series对象上的Z-index(Modify Z-index on Series object in Excel 2010)...

    在Excel 2010中修改Series对象上的Z-index(Modify Z-index on Series object in Excel 2010) 我正在使用excel 2010. 我有一个 ...

  3. JavaScript - 在函数中修改参数值、用对象实例作为参数传递修改参数

    <html><head><head><body><script language="javascript">// 在函数 ...

  4. javascript 无法修改 数组中对象_谈谈JavaScript中对象建立(Object)

    在这篇文章中我将会着重说明如何创建JavaScript里的对象(Object). 对象(Object)是什么? 在开始介绍如何创建对象前,我们要知道对象是什么.对象(Object)简单地来说,就是一堆 ...

  5. SpringBoot2.3 修改响应头、添加更新token、解决在过滤器中修改失败

    前言 使用Spring Boot开发项目的过程中,难免会遇到向响应头中写入一些信息,例如更新了的token,用户详情等信息.在请求头中添加,请求时就可以通过过滤器,拦截器等验证或者获得请求头传递的信息 ...

  6. js中修改this的指向方法整理

    JavaScript(简称"JS") 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言.虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,Ja ...

  7. pb 修改数据窗口种指定字段位置_如何在PB数据窗口中修改数据---设置数据窗口的更新属性...

    如何在 PB 数据窗口中修改数据 --- 设置数据窗口的更新属性 数据窗口对象非常强大的原因之一就是能够很容易地修改数据库.当用户修 改了数据窗口中的数据,插入了新的数据行或者删除了数据行以后,只要调 ...

  8. php对象持久化,在 Oracle 中完成 PHP5 对象的持久

    在 Oracle 中完成 PHP5 对象的持久 作者:Barry McKay 在数据库驱动的 Web 应用程序中实现 PHP5 对象的持久,朝着完全面向对象的 Web 应用程序开发迈进重要的一步. 2 ...

  9. phonegap工程中修改app的名字

    针对phonegap比较高的版本,我的是6.4.0. 在phonegap工程中,当添加了iOS和android平台或多个平台后,工程进行了开发,然后觉得app的名字想修改一下(比如在手机上显示的app ...

最新文章

  1. 给老婆普及计算机知识
  2. HDU1506 / POJ2339 Largest Rectangle in a Histogram 单调递减栈
  3. 一行行地读取输入行,将把最长的行打印出来
  4. 关闭eureka注册中心
  5. Ubuntu 安装Samba(Linux与Windows共享文件)
  6. Commons IO -- IOUtils
  7. 爬虫可视化点选配置工具之chrome插件简介
  8. Go根据url获取html代码
  9. 支持https协议么_你真的了解网址么?
  10. SQLServer-----SQLServer 2008 R2安装
  11. elipse下载及安装
  12. 文本转语音的接口(开放免费)
  13. 模糊c均值聚类及python实现
  14. mysql front连接_如何成功用MySQL-Front连接MySQL?
  15. 微信小程序getUserInfo返回拼音的解决办法
  16. 小程序云函数new Date()获取的时间和new Date().getDay()获取的时间不一致 / 云函数存入的时间不对 /小程序云开发配置时区
  17. 移植QT5.6到韦东山JZ2240嵌入式开发板(史上最最最最最详细的QT移植教程)
  18. Fabric 1.0源代码分析(22)Ledger #blkstorage(block文件存储)
  19. PBR标准化工作流程
  20. 2021-04-24全国艺术设计专业院校分析——华南地区

热门文章

  1. thinkphp 添加图片 文字 水印生成带二维码的小程序推广海报
  2. VC.PE.天使等解释
  3. 常用电子元器件-电阻器介绍
  4. java并发学习28:有序性
  5. PTA 7-66 华氏温度转换为摄氏温度
  6. 指针与const 深析
  7. JVM-04.垃圾回收机制
  8. 一个围绕中心点旋转的动画效果
  9. ilitek win10 触摸屏驱动_德国布拉本达(Brabender)触摸屏维修常见故障_触摸屏维修吧...
  10. 第九章向量空间,维度和四大子空间