温馨提示×

怎样实时看debian golang日志

小樊
35
2026-10-07 02:38:55
栏目: 编程语言

在 Debian 上“实时看 Golang 日志”通常分几种情况,取决于你的 Golang 程序是怎么运行的、日志写在哪里。下面按最常见场景给你讲。


一、Golang 日志直接输出到终端 / stdout

如果你的程序是前台运行的(比如 ./main),日志本来就在终端:

./main

想实时看,就保持终端打开即可。


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

1️⃣ nohup 方式运行

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

实时查看日志:

tail -f app.log

只看最新 100 行并实时:

tail -n 100 -f app.log

2️⃣ systemd 服务(推荐生产环境)

假设服务名是 myapp.service

sudo journalctl -u myapp -f

参数说明:

  • -f:实时跟踪
  • -n 100:先看最近 100 行
sudo journalctl -u myapp -n 100 -f

如果你的 Golang 程序用 log.Println 或 fmt.Println,默认就会进 journal。


三、Golang 代码里日志写文件

常见写法:

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

实时查看:

tail -f /path/to/app.log

四、日志框架(zap / logrus / slog)

示例(zap)

logger, _ := zap.NewProduction()
defer logger.Sync()
logger.Info("server started")

不管用什么框架,只要输出到 stdout 或文件,都可以:

  • stdout → journalctl -u xxx -f
  • 文件 → tail -f xxx.log

五、进阶:多文件 / 高并发日志

同时看多个日志

tail -f app.log error.log

过滤关键字

tail -f app.log | grep ERROR

自动刷新 + 高亮(推荐)

 multitail app.log

安装:

sudo apt install multitail

六、调试建议(Golang 开发时)

本地实时看:

go run main.go

或带环境变量:

GIN_MODE=debug go run main.go

七、总结速查表

场景 命令
前台运行 直接看终端
nohup tail -f app.log
systemd journalctl -u 服务名 -f
写文件 tail -f 文件路径
过滤错误 `tail -f log

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

  • Golang 是怎么启动的(systemd / docker / 裸跑)
  • 日志是 stdout 还是文件
  • 用的什么日志库(log / zap / logrus / slog)

我可以直接给你最合适的实时查看方案。

0 踩