文章目录

    • 使用logurs处理程序日志
    • logrus 常用配置
    • 使用viper处理程序配置

使用logurs处理程序日志

  1. 下载包,在终端执行命令
go get github.com/sirupsen/logrus
  1. 官方示例
package mainimport (log "github.com/sirupsen/logrus"
)func main() {log.WithFields(log.Fields{"animal": "walrus","number": 1,"size":   10,}).Info("A walrus appears")
}

logrus 常用配置

  1. 把日志格式改成json
logrus.SetFormatter(&log.JSONFormatter{TimestampFormat: "2006-01-02 15:04:06"})
  1. 文件名和行号加进去
logrus.SetReportCaller(true)

3.控制日志级别

//这里设置成debug级别,系统默认是info级别,不会打印debug日志
logrus.SetLevel(logrus.DebugLevel)//通过环境变量获取日志级别if logLevel == "debug" {log.SetLevel(log.DebugLevel)} else {log.SetLevel(log.InfoLevel)}

使用viper处理程序配置

  1. 下载包,https://pkg.go.dev/github.com/spf13/viper#readme-install
go get github.com/spf13/viper
  1. 官方示例
viper.SetDefault("ContentDir", "content")
viper.SetDefault("LayoutDir", "layouts")
viper.SetDefault("Taxonomies", map[string]string{"tag": "tags", "category": "categories"})
  1. 通过环境变量方式加载程序配置
	// 1.定义配置,key就是配置的名称viper.SetDefault("LOG_LEVEL", "debug")viper.SetDefault("DB_USERNAME", "root")viper.SetDefault("DB_PASSWORD", "")viper.SetDefault("DB_ADDRESS", "127.0.0.1")viper.SetDefault("DB_PORT", 3306)//2. 获取环境变量,viper设置的key名和系统配置了环境变量,默认自动绑定viper.AutomaticEnv()//3.获取程序的配置logLevel := viper.GetString("LOG_LEVEL")dbUsername := viper.GetString("DB_USERNAME")dbPort := viper.GetInt("DB_PORT")log.WithFields(log.Fields{"日志级别":   logLevel,"数据库用户名": dbUsername,"数据库端口":  dbPort,}).Debug("程序的配置信息")	//4. windos或者linux下设置环境变量windows - 右击我的电脑-属性-高级- 环境变量linux export 环境变量名称=// 5. 执行后查看debug日志

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/89491.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/89491.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/89491.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

EP01:【Python 第一弹】基础入门知识

一、基础入门知识 1.1 代码规范 1.1.1 语句分隔符 ; 换行 1.1.2 格式化 对 Windows 和 Linux 操作系统,快捷键是Ctrl Alt L对 macOS 操作系统,快捷键是Cmd Option L 1.1.3 注释 单行注释 # 这是一行注释多行注释 """ 这 是 …

实用的文件和文件夹批量重命名工具

在日常工作中,文件和文件夹的命名管理常常让人头疼。尤其是面对大量文件时,手动重命名不仅耗时,还容易出错。今天,我要给大家推荐一款超级实用的工具——OncePower 文件批量重命名,它不仅能批量重命名文件和文件夹&…

【Git】报错:git config --global http.sslBackend “openssl“

问题解决 报错:git config --global http.sslBackend “openssl”解决方法: git config --global http.sslBackend "openssl"之后再 push 即可正常提交。 🔍 原因分析 ​​系统环境不支持 OpenSSL 后端​​ Git 在某些平台&#xf…

Redisson RLocalCachedMap 核心参详解

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编…

AI辅助编程时代的高效规范开发指南:工具、原则与提效策略

引言:AI辅助编程的时代背景与核心挑战 人工智能在编程领域的应用虽可追溯至20世纪50年代,但近十年实现了革命性突破,推动其从早期的代码补全工具演进为能理解上下文、生成完整函数乃至项目架构的智能系统。关键发展里程碑包括:20…

百度网盘TV版1.21.0 |支持倍速播放,大屏云看片

百度网盘TV版是专为智能电视设计的应用程序,让用户可以直接在大屏幕上观看保存在云端的视频资源。此应用提供了与手机端几乎相同的功能,包括倍速播放功能,使得用户可以更方便地享受高清视频内容。无需繁琐的操作步骤,即可实现云端…

C++控制台贪吃蛇开发(二):让灵蛇舞动起来!

资料合集下载链接: ​​https://pan.quark.cn/s/472bbdfcd014​ 本文将深入讲解蛇移动的机制,并带你一步步实现以下功能: 理解蛇移动的核心算法:为什么蛇的移动是“倒着”更新的? 用代码表示方向:如何使用​​dx​​和​​dy​​变量优雅地控制方向。 编写核心​​move…

Elasticsearch+Logstash+Filebeat+Kibana部署

目录 软件说明: 架构拓扑 集群模式: 单机模式 环境准备 部署: kibana es logstash filebeat es 检查能否启动 logstash 命令设置 es 修改es配置文件 启用es kibana 修改kibana配置文件(方便查看索引&#xff09…

GLM(General Language Model,通用语言模型)

🧠 一、GLM是什么?一句话概括 GLM(General Language Model,通用语言模型)是一个“大脑”,它通过阅读海量书籍、网页、对话记录学会了人类的语言规则,不仅能“听懂”你说的话,还能“…

【科研绘图系列】R语言绘制显著性标记的热图

文章目录 介绍 加载R包 数据下载 导入数据 数据预处理 画图 系统信息 参考 介绍 【科研绘图系列】R语言绘制显著性标记的热图 加载R包 library(ggplot2) library(patchwork)rm(list = ls()) options(stringsAsFactors = F)

若依部署项目到服务器

目录 一、环境配置 redis nginx(宿主机|dokcer) 1.宿主机 2.docker 二、打包jar包 0.查看后端配置 1.打包后端 2.打包前端 三、启动 1.后端 2.前端 四、以上部署常见命令/错误 一、环境配置 之前的课都配过,先看看自己配了没 看看…

零基础学习性能测试-linux服务器监控:CPU监控

目录学习内容与快速应用路径第一阶段:理解 CPU 核心概念 (0.5天)第二阶段:掌握核心监控命令与指标 (1-2天)第三阶段:识别 CPU 问题与瓶颈 (核心技能)第四阶段:整合到性能测试工作流程 (快速应用落地)快速应用到工作中的关键策略零…

智能Agent场景实战指南 Day 15:游戏NPC Agent互动设计

【智能Agent场景实战指南 Day 15】游戏NPC Agent互动设计 文章内容 开篇 欢迎来到"智能Agent场景实战指南"系列的第15天!今天我们将深入探讨游戏开发中一个极具挑战性和创新性的领域——游戏NPC Agent互动设计。在当今游戏产业中,玩家对游戏…

Vite的优缺点(精简版)

优点 作为一款前端构建工具,它的核心特点是“快”,并且充分利用了现代浏览器对ES Modules的原生支持,一切围绕这一点展开 快启动:通过ES Modules,它省去了打包整个应用的时间,可以直接在浏览器中加载模块&a…

【深度学习】神经网络-part2

一、数据加载器 数据集和加载器 1.1构建数据类 1.1.1 Dataset类 Dataset是一个抽象类,是所有自定义数据集应该继承的基类。它定义了数据集必须实现的方法。 必须实现的方法 __len__: 返回数据集的大小 __getitem__: 支持整数索引,返回对应的样本 …

nextjs+react项目如何代理本地请求解决跨域

在 Next.js React 项目中解决本地开发跨域问题,可以通过以下几种方式实现代理请求:方案1:使用 Next.js 内置的 Rewrites 功能(推荐) 1. 修改 next.config.js /** type {import(next).NextConfig} */ const nextConfig…

Ubuntu查看Docker容器

在Ubuntu系统中,可以通过以下命令查看当前正在运行的Docker容器:1. 查看所有正在运行的容器 docker ps输出示例: CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a1b2c3d4e5f6 nginx:latest &…

智能点餐推荐网站,解决选择困难

软件介绍 今天为大家推荐一款解决"今天吃什么"选择困难症的趣味网站,它能为你推荐美味餐食,轻松化解每日用餐烦恼。 核心功能 这款网站最大的亮点就是能够根据你的需求智能推荐餐食选择,只需打开网页,就能立即获…

使用 C# 实现移动加权平均(Weighted Moving Average)算法

前言 欢迎关注dotnet研习社,前面我们讨论过"C#实现加权平均法",今天我们继续研究另外一种【移动加权平均法】。 在时间序列分析、股票数据处理、工业信号平滑等场景中,移动平均(Moving Average) 是最常见的平滑技术之一…

【Python】一些PEP提案(三):with 语句、yield from、虚拟环境

PEP 343 – The “with” Statement,with 语句 这玩意让我想起了Kotlin和Rust的问号标识符,都是将try-catch进行包装,避免出现太多重复代码(Go:我假设你不是在内涵我) 用法 最常见的用法就是对文件的操作&a…