温馨提示×

centos golang日志怎么读

小樊
43
2026-10-06 01:42:29
栏目: 编程语言

在 CentOS 上“读 Golang 日志”通常分几种情况,下面按最常见场景给你讲清楚。


一、Golang 程序日志一般放在哪?

Golang 本身不会自动生成日志文件,日志位置取决于你程序怎么写:

1. 直接输出到标准输出(stdout)

log.Println("hello")

在 CentOS 上:

  • 前台运行:日志直接打印在终端
  • 后台/systemd 运行:日志进入 journalctl

2. 写到文件(最常见)

log.SetOutput(os.OpenFile("/var/log/myapp.log", ...))

常见路径:

  • /var/log/xxx.log
  • /opt/xxx/logs/xxx.log
  • 当前目录 ./app.log

3. 使用日志库

常见库:

  • log
  • logrus
  • zap
  • zerolog

位置同样由配置决定。


二、怎么读日志(按运行方式)

✅ 情况 1:用 systemd 运行(推荐)

journalctl -u myapp.service -f

常用:

journalctl -u myapp.service -n 100   # 最近100行
journalctl -u myapp.service --since "2024-01-01"

✅ 情况 2:日志写到了文件

tail -f /var/log/myapp.log

查看历史:

less /var/log/myapp.log
grep ERROR /var/log/myapp.log

✅ 情况 3:Docker 容器里的 Golang

docker logs -f 容器名

三、常见日志格式怎么看?

标准 log 输出

2024/01/01 12:00:00 main.go:20: something happened

含义:

时间 文件:行号 内容

logrus / zap 示例

{"level":"error","msg":"db failed","time":"2024-01-01T12:00:00Z"}

可用:

jq '.msg' log.json

四、排错常用命令

# 看 golang 进程
ps -ef | grep myapp

# 看端口
netstat -tunlp | grep 8080

# 看 CPU / 内存
top

五、建议你补充的信息(我可以更精准帮你)

你可以告诉我:

  1. Golang 程序是怎么运行的?(systemd / nohup / docker)
  2. 日志写文件还是 stdout?
  3. 用的是哪个日志库?
  4. 现在遇到什么问题(看不到 / 报错 / 太多)?

我可以直接给你对应命令或配置示例。

0 踩