在 CentOS 上用 grep 查 Golang 日志,通常分几种常见场景。下面按最常见用法给你一个实用指南。
Golang 日志常见位置:
/var/log/your_app.log
/home/user/app/logs/app.log
journalctl -u your_app.service
nohup ./app > app.log 2>&1 &
grep "error" /var/log/your_app.log
忽略大小写:
grep -i "error" /var/log/your_app.log
grep -E "panic|fatal|error" /var/log/your_app.log
查 panic 堆栈:
grep -A 20 "panic:" /var/log/your_app.log
如果日志里有:
2026-01-21 10:30:00
grep "2026-01-21 10:3" /var/log/your_app.log
tail -f /var/log/your_app.log | grep "error"
journalctl -u your_app.service | grep "error"
journalctl -u your_app.service -f | grep "panic"
journalctl -u your_app.service --since "2026-01-21 10:00" --until "2026-01-21 11:00"
| 参数 | 作用 |
|---|---|
-i |
忽略大小写 |
-E |
正则 |
-A n |
显示匹配后 n 行 |
-B n |
显示匹配前 n 行 |
-C n |
前后各 n 行 |
-v |
反向匹配 |
-n |
显示行号 |
# 查所有 panic
grep -i "panic" /var/log/app.log
# 查 error 并显示前后 10 行
grep -C 10 "error" /var/log/app.log
# 查某个用户请求
grep "user_id=12345" /var/log/app.log
如果你愿意,可以:
我可以直接帮你写精准 grep 命令。