温馨提示×

Debian Golang日志如何查看

小樊
45
2026-07-27 09:49:00
栏目: 编程语言

Debian 系统上查看 Golang 程序日志,取决于你的程序是如何运行和记录日志的。下面按常见场景给你一个完整说明。


一、Golang 程序日志常见来源

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

很多 Golang 程序直接输出到:

  • stdout
  • stderr

查看方式

✅ 前台运行
go run main.go

日志会直接显示在终端。

✅ 后台运行
./myapp > app.log 2>&1 &

查看日志:

tail -f app.log

2️⃣ 使用 systemd(最常见于 Debian 服务器)

如果 Golang 程序是通过 systemd 管理的服务:

查看日志

sudo journalctl -u your-service-name

实时查看:

sudo journalctl -u your-service-name -f

查看最近 100 行:

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

3️⃣ 日志写入文件(如 /var/log)

很多 Golang 程序会写日志到:

/var/log/myapp.log

查看:

tail -f /var/log/myapp.log

如果程序使用 log.New()zap / logrus 等日志库,路径通常在配置文件中。


二、常见 Golang 日志库与查看方式

✅ 标准库 log

log.Println("hello")

输出到 stderr 或你指定的 io.Writer


✅ zap / logrus / zerolog

通常:

  • 输出到文件
  • 或输出到 stdout(被 systemd / docker 捕获)

重点检查:

  • 程序启动参数
  • 配置文件(YAML / JSON / TOML)

三、Docker 场景(如果在 Debian 上用 Docker)

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

四、排查“看不到日志”的常用方法

1️⃣ 确认程序是否在运行

ps aux | grep myapp

2️⃣ 查看文件描述符(日志是否写到了别的地方)

ls -l /proc/进程号/fd

3️⃣ 搜索日志文件

find /var/log -name "*.log"

五、Debian 常用日志位置速查

场景 查看方式
systemd 服务 journalctl -u 服务名
普通程序 stdout / 日志文件
Docker docker logs
系统日志 /var/log/syslog

六、示例:完整 systemd + Golang 日志示例

service 文件

[Unit]
Description=My Golang App

[Service]
ExecStart=/usr/local/bin/myapp
Restart=always

[Install]
WantedBy=multi-user.target

查看日志

sudo journalctl -u myapp -f

如果你愿意,可以把 你的 Golang 程序运行方式(systemd / docker / 直接运行)或 日志库 发出来,我可以给你更精确的查看方法。

0