在 Debian 下,Golang 本身没有统一的日志文件,日志位置取决于 你的程序是如何运行和配置的。下面按常见场景说明:
如果程序里用了:
log.Println("xxx")
或 fmt.Println,日志输出位置取决于 程序启动方式:
go run main.go
✅ 日志输出在 终端标准输出(stdout)
这是 Debian 上最常见的情况。
journalctl -u 服务名
journalctl -u 服务名 -f # 实时查看
例如:
journalctl -u myapp
✅ systemd 会自动接管 stdout/stderr 作为日志
如果启动命令类似:
./myapp > /var/log/myapp.log 2>&1
✅ 日志在:
/var/log/myapp.log
或你指定的路径。
log/sloglogruszapzerolog这些库通常需要你手动指定日志文件路径,例如:
logFile, _ := os.OpenFile("/var/log/myapp.log", os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0644)
log.SetOutput(logFile)
✅ 日志就在你配置的文件里。
journalctl -u 服务名 -e
docker logs 容器名
| 目录 | 说明 |
|---|---|
/var/log/ |
系统日志 |
/var/log/syslog |
系统通用日志 |
/var/log/journal/ |
systemd 日志存储 |
journalctl |
查看 systemd 日志 |
你可以按下面顺序查:
# 1. 是否 systemd 服务
systemctl status 服务名
# 2. 查看服务日志
journalctl -u 服务名 -f
# 3. 检查程序是否写了日志文件
ls /var/log/
可以告诉我:
我可以一步一步帮你找到日志位置 ✅