温馨提示×

debian golang日志怎样实时查看

小樊
34
2026-10-12 23:11:39
栏目: 编程语言

在 Debian 上实时查看 Golang 程序的日志,通常有几种常见场景,下面按最实用的方式给你总结。


一、Golang 程序直接输出到终端(最常见)

如果你是前台运行程序:

go run main.go
# 或
./yourapp

日志会直接打印在终端,实时可见,无需额外操作。


二、程序在后台运行(nohup / systemd)

1️⃣ 使用 nohup 运行

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

实时查看日志:

tail -f app.log

退出查看:Ctrl + C


2️⃣ 使用 systemd(推荐生产环境)

编辑 service 文件

sudo vim /etc/systemd/system/yourapp.service

示例:

[Unit]
Description=Golang App
After=network.target

[Service]
ExecStart=/opt/yourapp/yourapp
WorkingDirectory=/opt/yourapp
User=www-data
Restart=always

[Install]
WantedBy=multi-user.target

启动并查看实时日志

sudo systemctl daemon-reload
sudo systemctl start yourapp
sudo systemctl enable yourapp

实时查看日志:

journalctl -u yourapp -f

✅ 这是 Debian 上最推荐的方式


三、Golang 日志库说明(影响查看方式)

1️⃣ 使用标准库 log

log.Println("hello")

默认输出到 stderr


2️⃣ 使用 logrus / zap

例如:

logrus.Info("start server")

只要没重定向,都能用:

tail -f app.log
# 或
journalctl -u yourapp -f

四、高级:多文件 / 按时间切割日志

如果你是:

  • 日志写到 app.2026-01-21.log
  • 使用 logrotate

实时查看最新日志:

tail -F app.log

(-F 比 -f 更稳,文件切换也不会断)


五、快速排查技巧

查看进程是否在跑:

ps aux | grep yourapp

看端口:

ss -lntp

总结(最常用)

场景 命令
前台运行 直接看终端
nohup tail -f app.log
systemd journalctl -u 服务名 -f
日志轮转 tail -F app.log

如果你是 Docker / Kubernetes / 特定日志库(zap/logrus),告诉我,我可以给你更精确的方案。

0 踩