在 CentOS 上“定位 Golang 异常日志”,通常可以从 系统日志、进程管理日志、应用自身日志、崩溃文件 四个层面来做。下面按实战顺序说明。
大多数 Go 服务会:
/var/log/your_app/
/opt/your_app/logs/
~/your_app/logs/
grep -R "panic" /var/log/your_app/
grep -R "error" /var/log/your_app/
journalctl -u your_service_name
journalctl -u your_service_name -f
journalctl -u your_service_name | grep -i panic
journalctl -u your_service_name | grep -i error
✅ Go 的 panic 信息通常会出现在 systemd 日志里
如果程序直接运行:
./your_app
panic 会打印到终端:
panic: runtime error: invalid memory address...
goroutine 1 [running]:
main.main()
/path/main.go:20 +0x...
如果后台运行:
nohup ./your_app > app.log 2>&1 &
则查看:
cat app.log
ls -lh /var/lib/systemd/coredump/
或
coredumpctl list
coredumpctl info <PID>
dlv core your_app corefile
docker logs container_name
docker logs -f container_name
或:
kubectl logs pod_name
ps -ef | grep your_app
/var/log/messages
/var/log/syslog
dmesg | grep -i oom
journalctl | grep -i kill
log 或 zapdefer recover()如果你愿意,可以告诉我:
我可以直接给你针对性的命令。