在 Debian 上查看 Golang 程序产生的日志,取决于你的程序把日志输出到了哪里。下面按常见情况说明,基本都能覆盖 90% 的场景。
如果你没有特别配置日志输出路径,Go 程序默认日志会输出到:
fmt.Printlnlog.Printlnlog.Fatal这些都会输出到 标准输出 / 标准错误。
go run main.go
日志直接显示在终端。
nohup ./myapp &
日志默认在:
nohup.out
查看:
cat nohup.out
tail -f nohup.out
如果你用 systemd 管理 Go 程序:
sudo systemctl status myapp
查看完整日志:
sudo journalctl -u myapp -f
查看某段时间:
sudo journalctl -u myapp --since "2025-01-01" --until "2025-01-02"
✅ 这是 Debian / Ubuntu 最常见方式
例如:
log.SetOutput(os.OpenFile("/var/log/myapp.log", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644))
查看:
cat /var/log/myapp.log
tail -f /var/log/myapp.log
less /var/log/myapp.log
这些日志库通常也会写文件,查看方式一样:
ls /var/log/
docker logs <container_id>
docker logs -f <container_id>
如果是 docker-compose:
docker-compose logs -f
ps aux | grep myapp
systemctl list-units --type=service | grep myapp
ls /var/log/
journalctl -f
| 情况 | 原因 |
|---|---|
| 看不到日志 | 日志被重定向到文件 |
| 日志不实时 | 日志库有 buffer |
| journalctl 没日志 | 程序没用 systemd |
| 权限不足 | 加 sudo |
你可以直接贴:
1️⃣ 你的 Go 日志代码
2️⃣ 启动方式(systemd / docker / 直接运行)
3️⃣ Debian 版本(cat /etc/os-release)
我可以一步一步帮你定位 ✅