温馨提示×

Golang日志在Debian怎么找

小樊
41
2026-07-27 09:36:50
栏目: 编程语言

在 Debian 系统上查找 Golang 程序的日志,取决于程序把日志写到哪里。下面按常见情况一步步说明排查方法。


一、先看程序日志写到了哪里(最常见)

1️⃣ 如果程序里用了标准库 log

log.Println("hello")

默认输出是 标准错误(stderr),通常会被 systemd / shell 捕获。

systemd 服务

journalctl -u 服务名

例如:

journalctl -u mygoapp
journalctl -u mygoapp -f   # 实时查看

2️⃣ 如果日志写到了文件

比如代码里:

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

直接查看文件:

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

如果不确定路径,可以:

grep -R "log" /path/to/code

二、Debian 常见日志目录

系统日志

/var/log/syslog
/var/log/messages

查看:

tail -f /var/log/syslog
grep myapp /var/log/syslog

三、如果是 systemd 管理的 Golang 程序(最常见)

1️⃣ 找到服务名

systemctl list-units --type=service | grep my

2️⃣ 查看日志

journalctl -u 服务名
journalctl -u 服务名 --since today
journalctl -u 服务名 -f

四、如果不确定日志在哪(排查技巧)

1️⃣ 看进程打开了哪些文件

ls -l /proc/$(pidof 程序名)/fd

2️⃣ 用 lsof

lsof -p $(pidof 程序名)

3️⃣ 看看程序启动参数

ps aux | grep go

五、Docker 里运行的 Golang 程序

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

六、Golang 常见日志库对应位置

日志库 默认位置
log stderr
logrus 取决于配置
zap 取决于配置
zerolog 取决于配置

七、快速排查清单 ✅

  1. 是不是 systemd 服务? → journalctl -u xxx
  2. 有没有写文件? → /var/log/
  3. 是否 Docker? → docker logs
  4. 不确定? → lsof / proc

如果你愿意,可以直接贴:

  • Golang 程序是怎么启动的(systemd / docker / 手动)
  • 或一小段日志相关代码

我可以帮你精确定位日志位置

0