在 CentOS 上查看 Golang 程序日志,主要取决于你的 Golang 程序日志输出到哪里。下面分常见情况说明:
如果程序是这样启动的:
./myapp
日志会直接打印在终端。
查看方式:
./myapp > app.log 2>&1
tail -f app.log
如果你用 systemd 启动 Golang 程序(如 /etc/systemd/system/myapp.service),日志默认由 journald 管理。
journalctl -u myapp.service
journalctl -u myapp.service -f
journalctl -u myapp.service -n 100
journalctl -u myapp.service --since "2024-01-01 00:00:00"
如果你的代码类似:
log.SetOutput(os.OpenFile("/var/log/myapp.log", ...))
tail -f /var/log/myapp.log
grep ERROR /var/log/myapp.log
tail -f /var/log/myapp.log
这些库通常也是:
zap.NewProduction()
查看方式同上:
journalctl -u myapp
# 或
tail -f /var/log/myapp.log
docker logs myapp
docker logs -f myapp
ps aux | grep myapp
确认 service 文件中有:
[Service]
ExecStart=/opt/myapp/myapp
| 场景 | 查看方式 |
|---|---|
| 终端运行 | 终端 / 重定向文件 |
| systemd | journalctl -u 服务名 |
| 日志文件 | tail -f 日志路径 |
| Docker | docker logs |
如果你愿意,可以贴一下:
我可以帮你给出精确的命令。