在 CentOS 上“没有 golang 日志”这个说法,通常有几种常见含义。下面分层说明,基本能覆盖 90% 的场景。
这是最常见的情况。
fmt.Println("hello")
那只输出到 stdout / stderrlog / logrus / zap✅ 解决方式:
import "log"
log.SetOutput(os.OpenFile("/var/log/app.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644))
log.Println("start")
很多人在 CentOS 7/8 用 systemd 跑 Go:
[Service]
ExecStart=/opt/app/app
但日志没出现,是因为:
journalctl -u yourapp.service
✅ 这才是“CentOS 的 golang 日志”
CentOS 默认不安装 Go:
which go
# 没有
很多人以为:
“CentOS 应该有 golang 日志”
其实:
常见于:
例如:
nohup ./app > /dev/null 2>&1 &
日志直接被吞了。
如果你是找 Go 程序的日志:
| 场景 | 日志位置 |
|---|---|
| systemd | journalctl -u xxx |
| 手动运行 | 终端 / 你重定向的文件 |
| Docker | docker logs |
| Nginx + Go | Nginx 日志 |
| 自己写文件 | /var/log/xxx.log |
你可以自己确认:
# 1. Go 是否安装
go version
# 2. 程序是否运行
ps aux | grep app
# 3. 是否 systemd
systemctl status yourapp
# 4. 看日志
journalctl -u yourapp -f
你可以告诉我:
我可以直接给你完整配置示例。