在 Debian 系统上查找 Golang(Go)程序日志,取决于你的程序是如何运行、如何打日志的。下面按常见场景给你一个完整排查思路。
Go 程序本身没有统一日志位置,常见情况有:
| 场景 | 日志位置 |
|---|---|
fmt.Println / log.Println |
标准输出(stdout) |
| 自己写文件 | 程序指定路径 |
| systemd 服务 | journalctl |
| Docker 容器 | docker logs |
| Web 框架(gin / echo) | 框架配置 |
| syslog | /var/log/syslog |
systemctl list-units --type=service | grep go
或直接看你的服务名,例如:
systemctl status your-go-service
journalctl -u your-go-service -f
常用参数:
journalctl -u your-go-service --since today
journalctl -u your-go-service -n 100
✅ 这是 Debian / Ubuntu 上找 Go 日志最推荐的方式
./your-go-app
日志会直接打在终端。
./your-go-app > app.log 2>&1
查看:
cat app.log
tail -f app.log
ls /var/log/
find / -name "*.log" 2>/dev/null | grep go
或者:
find /var/log -type f
grep -i go /var/log/syslog
或实时查看:
tail -f /var/log/syslog
docker ps
docker logs <container_id>
docker logs -f <container_id>
log.SetOutput(os.OpenFile("/var/log/myapp.log", ...))
或:
fmt.Println()
log.Println()
ls -l /proc/$(pidof your-go-app)/fd
# 查看所有日志
journalctl -f
# 查看某个服务
journalctl -u your-go-service -f
# 查看系统日志
tail -f /var/log/syslog
# 查找日志文件
find / -name "*.log" 2>/dev/null
# 查看进程
ps aux | grep go
你可以直接告诉我:
cat /etc/debian_version)我可以一步一步帮你定位到具体日志文件。