在 Debian 系统里找 Golang(Go)程序产生的日志,一般取决于日志写到了哪里。下面按常见情况给你一个排查清单。
很多 Go 程序直接用:
log.Println()
fmt.Println()
这些日志默认输出到:
journalctl -u 你的服务名
查看实时日志:
journalctl -u 你的服务名 -f
查看某次启动的日志:
journalctl -u 你的服务名 --since today
✅ 这是 Debian + systemd 最常见的情况
如果 Go 代码里指定了文件:
log.SetOutput(os.OpenFile("/var/log/myapp.log", ...))
常见路径:
/var/log/
/var/log/myapp/
/tmp/
查找:
ls /var/log | grep myapp
搜索最近修改的日志:
find /var/log -name "*.log" -mmin -10
/var/log/syslog
/var/log/messages # 有些系统没有
查看:
tail -f /var/log/syslog
systemctl list-units --type=service | grep myapp
journalctl -u myapp.service
journalctl -u myapp.service --no-pager | tail -n 50
docker logs 容器名
docker logs -f 容器名
ps aux | grep myapp
lsof -p 进程PID
find / -name "*.log" -mmin -5 2>/dev/null
| 日志库 | 默认输出 |
|---|---|
| log | stderr |
| fmt | stdout |
| zap | 需配置 |
| logrus | 需配置 |
✅ 使用 systemd
✅ 日志输出到 stdout/stderr
✅ 用 journald 管理
✅ 不要自己写 /var/log/*.log(除非必要)
如果你愿意,可以把:
发出来,我可以帮你精确定位日志位置。