博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
gin框架全局捕获异常并写入日志文件
阅读量:3988 次
发布时间:2019-05-24

本文共 822 字,大约阅读时间需要 2 分钟。

gin 的默认启动方式为 debug 模式

gin.Default()func Default() *Engine {
debugPrintWARNINGDefault() engine := New() engine.Use(Logger(), Recovery()) return engine}func Recovery() HandlerFunc {
return RecoveryWithWriter(DefaultErrorWriter)}func RecoveryWithWriter(out io.Writer) HandlerFunc {
...}var DefaultErrorWriter io.Writer = os.Stderr

所以在开发过程中,设置为debug模式,所有的panic都会被Recovery()中间件捕获,并以标准错误的方式输出到终端。

但是在线上的时候,我们需要所有的panic都被捕获,并写入到日志文件,方便排查错误。

此时我们需要使用 RecoveryWithWriter 中间件,并传入一个 io.Writer ,也就是你打开着的日志文件句柄。

类似于这样:

gin.RecoveryWithWriter(logging.F)

其中F为我要写入的日志文件,并且已经被打开。

F, err = file.MustOpen(fileName, filePath)

所以,在启动服务的时候一般这样设置:

gin.SetMode(setting.GetRunMode())// 初始化应用if setting.GetRunMode() == "debug" {
GRouter = gin.Default()} else {
GRouter = gin.New() GRouter.Use(gin.RecoveryWithWriter(logging.F))}

转载地址:http://jjaui.baihongyu.com/

你可能感兴趣的文章
openstack网络总结
查看>>
excel 查找一个表的数据在另一个表中是否存在
查看>>
centos 7 上配置dnsmasq 同时支持ipv4和ipv6的DHCP服务
查看>>
AsyncTask、View.post(Runnable)、ViewTreeObserver三种方式总结frame animation自动启动
查看>>
Android中AsyncTask的简单用法
查看>>
windows Server 2003 IIS 网站发布说明书
查看>>
S3C6410启动模式介绍
查看>>
使用JLink间接烧写S3C2410、S3C2440开发板Nor、Nand Flash的方法(暂未验证)
查看>>
Jlink + ADS调试 S3C2440
查看>>
2440初始化存储器原理(接上一篇)
查看>>
S3C2440 USB 设备控制器(转)
查看>>
Linux usb 设备驱动 (1)
查看>>
Linux usb设备驱动(2)---> usbmouse.c 源码分析
查看>>
USB芯片
查看>>
ajax工作原理
查看>>
理解Sharding jdbc原理,看这一篇就够了
查看>>
XiaoMi面试题记录
查看>>
解决跨网场景下,CAS重定向无法登录的问题(无需修改现有代码)
查看>>
java反编译命令
查看>>
activemq依赖包获取
查看>>