温馨提示×

Debian下Golang日志在哪看

小樊
45
2026-07-27 09:35:48
栏目: 编程语言

在 Debian 系统上,Golang 程序本身没有统一的“日志文件”,日志位置取决于程序自己是怎么写日志的。下面按常见情况说明:


一、最常见情况(90%)

1️⃣ 程序直接输出到 stdout / stderr

很多 Golang 程序只是用:

fmt.Println("xxx")
log.Println("xxx")

这种情况下:

  • 手动运行:日志直接显示在终端
  • systemd 管理:日志由 systemd 接管

查看方式(systemd)

journalctl -u 服务名
journalctl -u 服务名 -f   # 实时查看

例如:

journalctl -u mygolangapp

二、程序自己写日志文件

有些 Golang 程序会写日志到文件,例如:

log.SetOutput(os.OpenFile("/var/log/myapp.log", ...))

常见路径包括:

/var/log/myapp.log
/var/log/myapp/
/opt/myapp/logs/

直接查看

cat /var/log/myapp.log
tail -f /var/log/myapp.log

三、Docker 容器中的 Golang 程序

1️⃣ 默认情况

日志输出到 stdout/stderr

docker logs 容器名
docker logs -f 容器名

2️⃣ 日志驱动为 journald

journalctl -u docker

四、如果是 apt 安装的 Golang 程序

例如:

apt install some-golang-app

日志通常在:

/var/log/

或 systemd:

journalctl -u some-golang-app

五、如何快速确认日志在哪?

1️⃣ 查看进程输出

ps aux | grep yourprogram

2️⃣ 查看 systemd 服务

systemctl status yourprogram

3️⃣ 查看程序配置

常见配置项:

log
logfile
log_path
log.dir

总结速查表

场景 日志位置
直接运行 终端
systemd journalctl -u 服务名
自己写文件 /var/log/*.log
Docker docker logs
apt 安装 /var/log/ 或 systemd

如果你愿意,可以把:

  • 程序名 / systemd 服务名 / 启动方式 发给我,我可以直接帮你定位到唯一定位日志的位置

0