发布于2026-07-13 阅读(0)
扫一扫,手机访问
在 CentOS 上调试 Golang 日志,这事儿其实没想象中那么复杂。很多开发者刚上手时,往往被日志输出、文件写入这些基础操作绊住脚——别急,下面把这套流程捋一遍,每一步都配上实际代码,包你一看就懂。

先确保环境就绪。CentOS 上缺 Golang?去官方下载页挑个合适版本装上就行,这事儿不复杂。
创建一个 main.go 文件,写段最基础的日志代码:
package main
import (
"fmt"
"log"
)
func main() {
log.Println("Hello, World!")
fmt.Println("Hello, World!")
}
这里用了 Go 标准库的 log 包,默认输出到标准错误。编译运行一下:
go build main.go
./main
你会看到类似这样的输出:
2022/01/01 00:00:00 Hello, World!
Hello, World!
第一行是 log.Println 输出的时间戳+消息,第二行是 fmt.Println 的纯文本。这就说明日志系统跑通了。
实际生产环境,日志都往文件里写。用 log.SetOutput() 就能定向输出:
package main
import (
"log"
"os"
)
func main() {
logFile, err := os.OpenFile("debug.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
if err != nil {
log.Fatal(err)
}
defer logFile.Close()
log.SetOutput(logFile)
log.Println("Hello, World!")
}
再次运行,当前目录下就会生成 debug.log 文件,里面躺着那条日志。注意文件权限和路径,别写错地方。
Go 标准库的 log 包没有日志级别概念——它只能输出,不能区分 error、warning、info。这是它的设计哲学:简单够用。但调试时我们往往需要分级控制。
解决方案:用第三方库。Logrus 或 Uber 的 Zap 都是成熟选择。以 Logrus 为例,你可以这样写:
logrus.Info("这是一条信息")
logrus.Warn("这是一条警告")
logrus.Error("这是一条错误")
它们会按级别输出,还可以配置格式、输出位置、钩子等。生产环境强烈推荐用这类库——不仅因为分级,还因为性能(尤其是 Zap)。
日志写再多,遇到诡异 bug 还是得靠调试器。Go 社区最常用的调试器是 Delve。
安装 Delve 后,进入你的项目目录,运行:
dlv debug main.go
这会启动一个交互式调试会话。你可以设置断点(b 命令)、单步执行(n 命令)、查看变量(p 变量名)等。举个例子:
(dlv) break main.go:10 # 在第10行设断点
(dlv) continue # 运行到断点
(dlv) print err # 查看 err 变量的值
(dlv) next # 单步下一行
(dlv) locals # 查看所有局部变量
熟悉这套操作后,很多日志解释不清的问题,一眼就能看穿。
在 CentOS 上调试 Golang 日志,核心就三步:搭好环境、用好标准库输出、必要时上第三方库或调试器。别被各种配置吓到——从最简单的 log.Println 开始,逐步过渡到文件输出和等级控制,最后用 Delve 兜底。这样一套组合拳下来,大部分日志相关的调试问题都能快速定位了。
下一篇:nginx日志中404错误处理
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8