温馨提示×

golang日志centos怎定位

小樊
49
2026-09-15 06:16:58
栏目: 编程语言

CentOS 上定位 Golang 程序日志,通常分几种情况,下面按「最常见 → 进阶」给你一个实用指南。


一、先确认:日志写在哪里?

1️⃣ 标准输出 / 标准错误(最常见)

很多 Golang 程序直接用:

log.Println("xxx")
fmt.Println("xxx")

CentOS 上:

  • 如果是 systemd 服务 → 日志在 journalctl
  • 如果是 前台运行 → 直接看终端
  • 如果是 nohup / 后台运行 → 可能在 nohup.out

二、systemd 服务(推荐方式)

查看日志

journalctl -u your-service-name -f

常用参数:

journalctl -u your-service-name --since "2024-01-01 00:00"
journalctl -u your-service-name -n 200

90% 的 CentOS 生产 Golang 服务都该用这个


三、程序自己写日志文件

常见路径

/var/log/your-app/
/opt/your-app/logs/
/home/user/app/log/

查找日志文件:

find / -name "*.log" 2>/dev/null | grep your-app

实时查看:

tail -f /var/log/your-app/app.log

四、nohup / 后台运行

如果你是这样启动的:

nohup ./app &

日志位置:

nohup.out

查看:

tail -f nohup.out

五、Docker 容器中的 Golang 日志

docker ps
docker logs -f container_id

六、快速定位“日志到底在哪”

1️⃣ 看进程启动命令

ps -ef | grep your-app

2️⃣ 看打开的文件

lsof -p PID

3️⃣ 看 systemd 配置

systemctl cat your-service-name

七、推荐的最佳实践(CentOS + Golang)

生产环境建议

  • systemd
  • 日志交给 journald
  • 或写 /var/log/yourapp/
  • 避免 fmt.Println 打日志

如果你愿意,可以告诉我:

  • Golang 是怎么启动的(systemd / nohup / docker)
  • 有没有用 log / zap / logrus
  • CentOS 版本(7 还是 8 / Stream)

我可以直接帮你 精准定位日志位置

0