温馨提示×

怎么查Debian下Golang日志

小樊
39
2026-07-27 11:34:55
栏目: 编程语言

在 Debian 下查看 Golang 程序日志,主要取决于你的程序把日志输出到了哪里。下面按常见情况给你一个排查清单。


一、Golang 日志常见输出方式

1️⃣ 输出到 stdout / stderr(最常见)

很多 Golang 程序直接用:

log.Println("hello")
fmt.Println("hello")

在 Debian 上:

  • 如果是 前台运行:直接在你终端里看到
  • 如果是 systemd 服务:日志会进入 journald

✅ 查看方式:

journalctl -u 服务名

例如:

journalctl -u mygolangapp

只看本次启动:

journalctl -u mygolangapp -f

2️⃣ 输出到文件(如 /var/log)

有些程序会自己写日志文件:

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

3️⃣ 使用第三方日志库

常见库:

  • logrus
  • zap
  • zerolog

这些库通常也是:

  • 输出到 stdout
  • 或配置文件中指定的 log 文件

✅ 查配置:

grep -R "log" /etc/你的程序目录

二、如果是 systemd 管理的 Golang 服务(最常见)

1️⃣ 找到服务名

systemctl list-units --type=service | grep 你的程序

2️⃣ 查看日志

journalctl -u 服务名

实时查看:

journalctl -u 服务名 -f

只看错误:

journalctl -u 服务名 -p err

三、如果是 Docker 运行的 Golang 程序

docker ps
docker logs 容器ID
docker logs -f 容器ID

四、Debian 系统日志(辅助排查)

如果程序崩溃或异常退出:

dmesg | tail
journalctl -xe

五、快速定位 Golang 日志位置(实用技巧)

1️⃣ 看进程输出位置

ls -l /proc/$(pidof 程序名)/fd
  • 1 → stdout
  • 2 → stderr

2️⃣ 搜索日志文件

find /var/log -name "*log*" 2>/dev/null

六、我可以进一步帮你

你可以直接告诉我:

  1. ✅ Golang 程序是怎么运行的?(systemd / docker / 手动)
  2. ✅ 用的是哪个日志库?
  3. ✅ 是否自己指定了日志路径?

我可以给你精确到命令级别的查询方式。

0