Go 标准库log 不支持日志级别,仅提供 Print/Fatal/Panic 等函数,无 Info/Warn/Error 分级;需用第三方库(如 logrus、zap)或自行封装前缀式 Logger。
log 本身不支持日志级别这是最容易踩的坑:Go 原生 log 包没有 Info、Warn、Error 等分级接口。它只提供 Print、Printf、Println、Fatal、Fatalf、Panic、Panicf 这几组函数,其中只有 Fatal 和 Panic 会终止程序,其余都只是输出——它们在语义上并无级别区分。
如果你看到别人代码里写了 log.Info(...),那一定是用了第三方库(比如 logrus、zap 或 zerolog),不是标准库。
log.Println():输出后换行,不退出进程log.Fatal():等价于 log.Println() + os.Exit(1),输出后立即终止程序log.Panic():等价于 log.Println() + panic(...),触发 panic,可被 recover 捕获(但一般不这么用)如果不想引入第三方库,又想区分日志用途,常见做法是封装自己的 Logger 类型,用前缀或不同输出目标来区分:
package main
import (
"log"
"os"
)
var (
InfoLogger = log.New(os.Stdout, "[INFO] ", log.Ldate|log.Ltime|log.Lshortfile)
ErrorLogger = log.New(os.Stderr, "[ERROR] ", log.Ldate|log.Ltime|log.Lshortfile)
FatalLogger = log.New(os.Stderr, "[FATAL] ", log.Ldate|log.Ltime|log.Lshortfile)
)
func main() {
InfoLogger.Println("服务启动完成")
ErrorLogger.Printf("数据库连接失败: %v", "timeout")
FatalLogger.Fatal("配置文件不存在,无法继续")
}
注意:log.New 的第三个参数是 flag,常用组合如 log.Ldate | log.Ltime | log.Lshortfile,能帮你快速定位日志来源;不要漏掉 |,写成逗号会编译失败。
InfoLogger 输出到 os.Stdout,方便管道处理或重定向到文件ErrorLogger 和 FatalLogger 输出到 os.Stderr,符合 Unix 习惯,也便于分离错误流FatalLogger.Fatal() 仍会调用 os.Exit(1),不可恢复Fatal 不是 “严重错误日志”,而是 “程序必须退出” 的信号很多人误以为 log.Fatal 是用来记录“高危错误”的,其实它核心语义是“这个错误发生后,程序已无法安全继续运行”。比如:
相反,以下情况不该用 Fatal:
滥用 Fatal 会导致服务频繁崩溃,尤其在微服务或容器环境中,可能触发反复重启循环。
标准库 log 的设计哲学是“足够简单”,它不打算替代专业日志系统。一旦项目规模上升、需要如下能力,就该考虑迁移:
ctx 中的 traceID 自动注入每条日志)推荐起步选择:github.com/sirupsen/logrus(API 清晰,文档全)或 go.uber.org/zap(高性能,适合高吞吐场景)。它们都支持标准库风格的 log.WithField 或 logger.Info 调用,迁移成本低。
别花时间给 log 打补丁加 level 字段——Go 生态里,日志分级这件事,早有成熟解法,而且比你预想的更轻量。
# js
# git
# json
# go
# github
# golang
# 端口
# ai
# unix
# 配置文件
# 开发环境
# 标准库
# print
# 封装
# Error
# printf
# 循环
# 接口
# 切片
# 异步
# 数据库
# http
# elk
# 第三方
# 不支持
# 自己的
# 这是
# 如果你
# 很多人
# 帮你
# 这件事
# 用了
# 不存在
相关文章:
网站制作费用多少钱,一个网站的运营,需要哪些费用?
Android自定义listview布局实现上拉加载下拉刷新功能
青岛网站设计制作公司,查询青岛招聘信息的网站有哪些?
黑客入侵网站服务器的常见手法有哪些?
零服务器AI建站解决方案:快速部署与云端平台低成本实践
个人网站制作流程图片大全,个人网站如何注销?
Swift中循环语句中的转移语句 break 和 continue
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
如何在万网自助建站中设置域名及备案?
如何快速搭建自助建站会员专属系统?
猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?
,在苏州找工作,上哪个网站比较好?
网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?
外汇网站制作流程,如何在工商银行网站上做外汇买卖?
建站之星ASP如何实现CMS高效搭建与安全管理?
广东专业制作网站有哪些,广东省能源集团有限公司官网?
建站主机核心功能解析:服务器选择与网站搭建流程指南
香港服务器租用每月最低只需15元?
网站制作知乎推荐,想做自己的网站用什么工具比较好?
html制作网站的步骤有哪些,iapp如何添加网页?
魔毅自助建站系统:模板定制与SEO优化一键生成指南
C#怎么使用委托和事件 C# delegate与event编程方法
如何快速搭建虚拟主机网站?新手必看指南
c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】
手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?
建站主机与虚拟主机有何区别?如何选择最优方案?
微信推文制作网站有哪些,怎么做微信推文,急?
如何在腾讯云服务器上快速搭建个人网站?
如何用wdcp快速搭建高效网站?
湖州网站制作公司有哪些,浙江中蓝新能源公司官网?
北京制作网站的公司,北京铁路集团官方网站?
如何快速打造个性化非模板自助建站?
如何在IIS7中新建站点?详细步骤解析
,怎么在广州志愿者网站注册?
详解jQuery中基本的动画方法
建站主机选虚拟主机还是云服务器更好?
制作网站的模板软件,网站怎么建设?
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
如何在西部数码注册域名并快速搭建网站?
如何通过服务器快速搭建网站?完整步骤解析
c++怎么用jemalloc c++替换默认内存分配器【性能】
武汉网站制作费用多少,在武汉武昌,建面100平方左右的房子,想装暖气片,费用大概是多少啊?
建站之星IIS配置教程:代码生成技巧与站点搭建指南
网站建设制作需要多少钱费用,自己做一个网站要多少钱,模板一般多少钱?
如何在宝塔面板创建新站点?
C++中引用和指针有什么区别?(代码说明)
如何用5美元大硬盘VPS安全高效搭建个人网站?
品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?
成都网站制作报价公司,成都工业用气开户费用?
家具网站制作软件,家具厂怎么跑业务?
*请认真填写需求信息,我们会在24小时内与您取得联系。