在 Debian 下查看 Golang 程序日志,主要取决于你的程序把日志输出到了哪里。下面按常见情况给你一个排查清单。
很多 Golang 程序直接用:
log.Println("hello")
fmt.Println("hello")
在 Debian 上:
journald✅ 查看方式:
journalctl -u 服务名
例如:
journalctl -u mygolangapp
只看本次启动:
journalctl -u mygolangapp -f
有些程序会自己写日志文件:
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
如果没权限:
sudo tail -f /var/log/myapp.log
常见库:
logruszapzerolog这些库通常也是:
✅ 查配置:
grep -R "log" /etc/你的程序目录
systemctl list-units --type=service | grep 你的程序
journalctl -u 服务名
实时查看:
journalctl -u 服务名 -f
只看错误:
journalctl -u 服务名 -p err
docker ps
docker logs 容器ID
docker logs -f 容器ID
如果程序崩溃或异常退出:
dmesg | tail
journalctl -xe
ls -l /proc/$(pidof 程序名)/fd
1 → stdout2 → stderrfind /var/log -name "*log*" 2>/dev/null
你可以直接告诉我:
我可以给你精确到命令级别的查询方式。