在 CentOS 上查看 Go(Golang)程序产生的日志,常见方式取决于你的程序是如何运行和记录日志的。下面按场景给你总结一下:
如果你是用 systemd 管理的 Go 服务(最常见):
journalctl -u 你的服务名
例如:
journalctl -u mygoapp
journalctl -u mygoapp -f
journalctl -u mygoapp -n 100
journalctl -u mygoapp --since "2024-01-01 00:00:00"
如果你是手动运行:
./mygoapp
日志会直接输出到 终端,或你重定向的地方。
./mygoapp > app.log 2>&1 &
tail -f app.log
如果代码里类似这样:
log.SetOutput(os.OpenFile("/var/log/mygoapp.log", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644))
tail -f /var/log/mygoapp.log
grep ERROR /var/log/mygoapp.log
logruszapzerolog一般都会写文件或 stdout,查看方式和上面一样。
journalctl -xe
dmesg | tail
确认程序有没有启动
ps -ef | grep mygoapp
确认监听端口
netstat -tunlp | grep 端口
确认日志路径 检查 Go 代码里日志文件路径是否正确、是否有权限
systemd 管理 Go 程序stdout/stderrjournald 或 rsyslog 收集ELK / Loki / Grafana如果你愿意,可以告诉我:
我可以给你更精确的命令。