温馨提示×

debian下怎么查golang日志

小樊
41
2026-09-10 03:43:09
栏目: 编程语言

在 Debian 下查看 Golang 程序日志,取决于你的程序日志写在哪里、以及你是自己写的程序还是用 systemd 管理的服务。下面按常见场景说明。


一、Golang 日志一般写在哪里?

Go 程序常见日志位置:

  1. 标准输出 / 标准错误(stdout / stderr)
    • log.Println
    • fmt.Println
  2. 写到文件
    • 如 /var/log/app.log
  3. systemd 管理的服务
    • 日志由 journald 收集

二、最常见:用 systemd 运行的 Go 服务(推荐)

1️⃣ 查看日志(实时)

sudo journalctl -u your-service-name -f

2️⃣ 查看最近 100 行

sudo journalctl -u your-service-name -n 100

3️⃣ 按时间查看

sudo journalctl -u your-service-name --since "2024-01-01 00:00"

✅ 如果是 go run main.go 或二进制直接运行,但用了 systemd,这是最标准方式


三、直接运行 Go 程序(非 systemd)

1️⃣ 前台运行(看终端)

./yourapp

日志会直接打印在终端。

2️⃣ 重定向到日志文件

./yourapp > /var/log/yourapp.log 2>&1

查看:

tail -f /var/log/yourapp.log

四、查看已存在的日志文件

1️⃣ 实时追踪

tail -f /path/to/log.log

2️⃣ 查看最后 200 行

tail -n 200 /path/to/log.log

3️⃣ 搜索关键字

grep ERROR /path/to/log.log

五、找不到日志?这样排查

1️⃣ 看进程

ps aux | grep yourapp

2️⃣ 看打开了哪些文件

lsof -p PID

3️⃣ 看 systemd 服务文件

systemctl cat your-service-name

六、Go 程序推荐做法(经验)

✅ 生产环境:

  • 用 systemd
  • 日志输出到 stdout
  • 由 journald 统一管理

✅ 调试:

  • 用 log.SetOutput(os.Stdout)

如果你愿意,可以告诉我:

  • 你是 自己写的 Go 程序 还是 第三方服务
  • 是否用了 systemd
  • 日志是 文件 / 终端 / 未知

我可以直接给你精确命令。

0 踩