在 Debian 系统上查看 Golang(Go)程序的日志,取决于你的程序是如何输出日志的。下面按常见场景给你详细说明。
如果你是这样运行的:
go run main.go
或
./myapp
那么日志会直接输出到终端,你看到的就是日志。
nohupnohup ./myapp > app.log 2>&1 &
查看日志:
tail -f app.log
&./myapp > app.log 2>&1 &
查看:
cat app.log
tail -f app.log
less app.log
如果你用 systemd 管理 Go 服务(最常见于生产环境)。
sudo journalctl -u your-service-name
实时查看:
sudo journalctl -u your-service-name -f
查看最近 100 行:
sudo journalctl -u your-service-name -n 100
只要 Go 程序输出到 stdout/stderr,systemd 会自动接管日志。
f, _ := os.OpenFile("/var/log/myapp.log", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
log.SetOutput(f)
查看日志:
cat /var/log/myapp.log
tail -f /var/log/myapp.log
⚠️ 注意权限问题:
sudo chown youruser:youruser /var/log/myapp.log
通常也是输出到 stdout 或文件。
例如:
log := logrus.New()
log.Out = os.Stdout
查看方式同上。
docker logs <container_id>
docker logs -f <container_id>
| 场景 | 命令 |
|---|---|
| systemd 服务 | journalctl -u 服务名 -f |
| 查看文件 | tail -f app.log |
| 后台进程 | `ps aux |
| 所有日志 | journalctl -f |
| 按时间 | journalctl --since "10 min ago" |
✅ 生产环境:
systemd✅ 开发环境:
go run./app如果你愿意,可以把你的 Go 启动方式 / systemd 配置 / Docker 配置贴出来,我可以帮你精确判断日志在哪、怎么查。