gin框架16--如何记录日志

2023-10-27

gin框架16--如何记录日志

介绍

本文主要介绍如何将日志写入文件中,取消终端输出。

案例

源码:

package main

import (
	"github.com/gin-gonic/gin"
	"io"
	"os"
)

func main() {
	gin.DisableConsoleColor()
	f, _ := os.Create("gin.log")
	gin.DefaultWriter = io.MultiWriter(f)
	//gin.DefaultWriter = io.MultiWriter(f, os.Stdout)
	r := gin.Default()
	r.GET("/ping", func(c *gin.Context) {
		c.String(200, "pong")
	})
	r.Run(":8080")
}

如果希望同时终端输出+写日志,那么可以使用 io.MultiWriter(f, os.Stdout) 来实现。

测试:
http://127.0.0.1:8080/ping
输出:
pong
日志被写入到当前目录下的 gin.log 文件中,且终端不再输出日志,如下图:
在这里插入图片描述

说明

gin官方文档 如何记录日志

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

gin框架16--如何记录日志 的相关文章

  • Spring之ApplicationContext快速入门

    目录 一 概述 二 代码演示 三 BeanFactory与ApplicationContext的关系 四 BeanFactory的继承体系 五 ApplicationContext的继承体系 一 概述 ApplicationContext称

随机推荐

  • mfc 程序闪退_VC6 在Window10 上操作打开文件时闪退或直接退出的解决方法

    1 下载FileTool exe 并解压 2 打开VC6 0 点击File Open Workspace 选择刚解压出来的FileTool dsw 并确定 3 点击Bulid Build FileTool dll 生成FileTool dl
  • 编程求1平方+2平方+...+n平方

    题目描述 编程求1平方 2平方 n平方 输入 输入一行 只有一个整数n 1 lt n lt 200 输出 输出只有一行 这意味着末尾有一个回车符号 包括1个整数 样例 输入 5 输出 55 提示 循环语句 include
  • 浅谈Visitor访问者模式

    一 前言 什么叫访问 如果大家学过数据结构 对于这点就很清晰了 遍历就是访问的一般形式 单独读取一个元素进行相应的处理也叫作访问 读取到想要查看的内容 对其进行处理就叫作访问 那么我们平常是怎么访问的呢 基本上就是直接拿着需要访问的地址来读
  • [USACO Open08]农场周围的道路

    题目描述 约翰的 N 1 N 10 9 只奶牛要出发去探索牧场四周的土地 她们将沿着一条路走 一直走到三岔路口 可以认为所有的路口都是这样的 这时候 这一群奶牛可能会分成两群 分别沿着接下来的两条路继续走 如果她们再次走到三岔路口 那么仍有
  • linux ./ 执行run文件,如何在Ubuntu中执行.bin和.run文件

    在解释如何在Ubuntu上执行 bin和 run文件之前 让我们首先定义这些文件扩展名到底是什么 Bin档 Ubuntu中的Binary或BIN文件指的是安装软件包 其中大多数是self extracting可执行文件 用于在系统上安装软件
  • BF算法 KMP算法

    BF算法 又叫朴素算法 时间复杂度为O mn 相比KMP算法比较简单 举个例子 对于给定的主字符串 ababbcabcdabcde 和子串 abcd 我们用i和j来分别遍历两个字符串 比较两个i j 对应字符串位置的元素是否相等 如果相等则
  • 应用软件的层次划分

    谈到应用程序的层次 我们平时所说的层次有两种 逻辑的层次 layer 和部署的层次 tier 这两种层次划分的目的是不同的 因此划分方式也有一些差异 能够为应用程序带来的好处也是不同的 逻辑层次逻辑层次 layer 划分的最重要的目的在于调
  • JavaScript设计模式(五)——发布订阅模式、桥接模式、组合模式

    个人简介 个人主页 前端杂货铺 学习方向 主攻前端方向 正逐渐往全干发展 个人状态 研发工程师 现效力于中国工业软件事业 人生格言 积跬步至千里 积小流成江海 推荐学习 前端面试宝典 Vue2 Vue3 Vue2 3项目实战 Node js
  • java父类_java 子类与父类

    子类是由继承得到的类 被继承的类就是父类 子类与父类是 is a 关系 一 子类与父类 1 子类 1 子类定义 class 子类名 extends 父类名 2 子类继承性 子类继承了父类的所有属性和除了构造方法的其余方法 子类与父类在同个包
  • Python实现保留三位有效数字

    网上查找了较多的四舍五入的方法 发现不是自己想要的 于是自己按数目级别写了一段 后面又做了更改 做了简单的整合 整体思路就是取第三位数作判断 如果是第三位是5 再判断第四位的奇偶性 作为小白 代码整体逻辑比较呆板 希望有大神做下修改 定义保
  • ssm框架ajax登录页面,ssm框架登录注册demo

    实例简介 ssm框架登录注册demo html页面 ajax实现登录注册 实例截图 核心代码 ssm ssm pom xml src main java controller TestController java UserControll
  • 海思(MPP)媒体处理软件平台(1)-----功能简介

    概述 HI3531D 海思提供的媒体处理软件平台 Media Process Platform 简称 MPP 可支持应用软件快速 开发 该平台对应用软件屏蔽了芯片相关的复杂的底层处理 并对应用软件直接提供 MPI MPP Programe
  • React渲染顺序及useEffect执行顺序探究(含并发模式)

    前言 在不借助任何演示的情况下 你能清楚地说出 React 组件的渲染顺序以及 useEffect 的执行顺序吗 你知道 React18 并发模式 下执行情况是不同的吗 下面就让我们一起来看一看吧 React 16 先来看目前大部分人还在用
  • 【C语言】强符号和弱符号

    1 强符号 弱符号定义 编译器在编译源程序时 无论你是变量名 函数名 在它眼里 都是一个符号而已 用来表征一个地址 编译器会将这些符号集中 存放到一个叫符号表的 section 中 那么对于两个 c文件中存在的同名的变量 编译器该怎么选择呢
  • 切换零感知 H3C H5家庭智慧无线套装牛在哪?

    我头上有犄角 我身后有尾巴 大家看到这句歌词首先想到的是 小青龙 而小编认为这是对传统无线路由器最为真实的写照 犄角 就是无线路由器的外置天线 尾巴 也就是无线路由器的电源线以及连接各个端口的网络线路 随着大家审美的变化 无线路由器这种最为
  • c++网络编程

    网络编程模型 c s 模型 客户端服务器模型 b s 模型 浏览器服务器模型 1 tcp网络流程 服务器流程 1 创建套接字 2 完善服务器网络信息结构体 3 绑定服务器网络信息结构体 4 让服务器处于监听状态 5 accept阻塞等待客户
  • uniapp如何创建项目详细介绍,多环境配置、路由配置、代理配置、请求封装等。完整的搭建一个项目环境。

    1 前期准备及前言 一般可以使用HBuilderX创建项目 为了本次博客的完整性 先讲解一下HBuilderX创建uniapp项目 下载开发工具地址 https www dcloud io hbuilderx html 由于现在项目开发都是
  • 组件间的传值和钩子函数

    组件间的传值和生命周期钩子函数 所有的生命周期钩子自动绑定 this 上下文到实例中 因此你可以访问数据 对属性和方法进行运算 这意味着 你不能使用箭头函数来定义一个生命周期方法 例如 created gt this fetchTodos
  • redis性能测试工具redis-benchmark

    redis自带性能测试工具redis benchmark 在bin目录下 redis benchmark h h ip p 端口 a密码认证 c客户端的连接数 n请求数 d 指定数据大小 q只显示每秒的查询值 redis benchmark
  • gin框架16--如何记录日志

    gin框架16 如何记录日志 介绍 案例 说明 介绍 本文主要介绍如何将日志写入文件中 取消终端输出 案例 源码 package main import github com gin gonic gin io os func main gi