温馨提示×

Debian中怎么查Golang日志

小樊
43
2026-07-27 11:31:59
栏目: 编程语言

在 Debian 系统中查看 Golang(Go)程序日志,常见做法取决于日志写到了哪里。下面按常见场景给你一个完整指南。


一、最常见情况:使用 log 或日志框架输出到 stdout/stderr

1️⃣ 直接运行 Go 程序

go run main.go

日志会直接输出到终端


2️⃣ 后台运行(systemd / nohup)

✅ systemd 服务(最常见、推荐)

如果 Go 程序是通过 systemd 管理的:

sudo systemctl status your-service

查看日志:

journalctl -u your-service

实时查看:

journalctl -u your-service -f

指定时间:

journalctl -u your-service --since "2024-01-01" --until "2024-01-02"

✅ nohup 运行

nohup ./app > app.log 2>&1 &

查看日志:

tail -f app.log

二、日志写入到文件

如果 Go 程序里手动写日志文件,比如:

log.SetOutput(os.OpenFile("app.log", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644))

查看方式:

cat app.log
less app.log
tail -f app.log

三、使用常见 Go 日志库

1️⃣ logrus

logrus.SetOutput(os.Stdout)

logrus.SetOutput(file)

查看方式同上(stdout 或文件)


2️⃣ zap

logger, _ := zap.NewProduction()
defer logger.Sync()

生产环境通常输出到:

  • stdout(systemd 可捕获)
  • 或指定日志文件

四、查看系统级日志(异常退出)

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

journalctl -xe

或:

dmesg | tail

五、Docker 中运行的 Go 程序

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

六、快速自查清单 ✅

你可以按这个顺序查:

  1. journalctl -u 服务名
  2. ps aux | grep 程序名
  3. ls /var/log/
  4. ✅ 查看程序目录下的 .log 文件
  5. strace -p PID(高级)

七、如果你愿意,我可以进一步帮你

你可以告诉我:

  • ✅ Go 程序是怎么运行的(systemd / docker / 手动)
  • ✅ 用的什么日志库
  • ✅ 日志大概在哪里(不知道也没关系)

我可以直接给你精准命令

0