在 CentOS 上,Go(Golang)程序本身不会自动把日志存到某个固定位置,日志在哪里完全取决于你的程序是怎么写的。常见情况如下:
如果代码里用的是:
log.Println("xxx")
fmt.Println("xxx")
那么:
查看方式:
journalctl -u your-service -f
如果你用了:
log.SetOutput(os.OpenFile("/var/log/myapp/app.log", ...))
常见路径:
/var/log/myapp/
/var/log/<项目名>.log
/home/<user>/logs/
查看:
tail -f /var/log/myapp/app.log
通常也是写文件:
zap logger -> /var/log/app/app.log
或集中输出到 stdout,由 systemd / docker 接管。
日志默认在:
docker logs <container_id>
或:
/var/lib/docker/containers/...
如果你用 systemd 启动 Go 程序:
[Service]
ExecStart=/opt/myapp/app
✅ 没写文件 → 全在 journald
journalctl -u myapp.service
systemctl list-units --type=service | grep go
systemctl status your-app
lsof -p <pid> | grep log
find /var/log -name "*.log" | grep your-app
✅ 写文件 + logrotate
✅ 或 stdout + journald / 容器日志
✅ 不要用 fmt.Println 做正式日志
如果你愿意,可以:
我可以直接告诉你日志现在在哪、该怎么配最合理。