温馨提示×

怎么看Debian Golang日志

小樊
40
2026-07-27 11:20:53
栏目: 编程语言

在 Debian 上查看 Golang 程序的日志,要看你的程序日志是写到哪里的。下面按常见情况给你一个清晰的排查思路。


一、先看 Golang 程序日志写到了哪里

1️⃣ 标准输出 / 标准错误(最常见)

如果程序里用的是:

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

或者没做特殊配置,日志通常会输出到:

  • 前台运行:直接打在终端
  • systemd 服务:写入 journald
  • Docker:写入容器日志

二、用 systemd 运行的 Golang 程序(最常见于 Debian)

1️⃣ 查看服务名

systemctl list-units --type=service | grep your-app

2️⃣ 查看实时日志

journalctl -u your-app.service -f

常用参数:

journalctl -u your-app.service -n 100   # 最近 100 行
journalctl -u your-app.service --since "10 min ago"

这是 Debian 上最推荐的方式


三、如果日志写到了文件

1️⃣ 常见路径

/var/log/your-app.log
/var/log/app/xxx.log
./logs/xxx.log

2️⃣ 实时查看

tail -f /var/log/your-app.log

3️⃣ 搜索错误

grep -i error /var/log/your-app.log

四、Docker 里的 Golang 日志

1️⃣ 查看容器日志

docker logs -f 容器名或ID

2️⃣ 查看最近 100 行

docker logs --tail 100 容器名

五、Golang 程序本身日志配置检查

1️⃣ 常见日志库

  • log(标准库)
  • logrus
  • zap
  • zerolog

如果用了日志库,注意是否配置了:

log.SetOutput(&lumberjack.Logger{
    Filename:   "/var/log/app.log",
    MaxSize:    10,
    MaxBackups: 3,
})

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

1️⃣ 系统级日志

journalctl -xe

2️⃣ 老系统(syslog)

cat /var/log/syslog

七、快速定位流程(推荐)

程序怎么启动的?
├─ systemd → journalctl -u xxx
├─ 直接运行 → 看终端 / 重定向文件
├─ Docker → docker logs
└─ 写文件 → tail -f /var/log/xxx.log

八、如果你愿意,我可以更具体帮你

你可以直接贴:

  • ✅ Golang 程序是怎么启动的(systemd / docker / 手动)
  • ✅ 用的什么日志库
  • ✅ 报错或异常现象

我可以一步一步帮你定位是哪里的日志、为什么看不到、怎么改。

0