温馨提示×

如何用grep查centos golang日志

小樊
33
2026-09-30 06:27:19
栏目: 编程语言

在 CentOS 上用 grep 查 Golang 日志,通常分几种常见场景。下面按最常见用法给你一个实用指南。


一、先确认日志在哪

Golang 日志常见位置:

  • 应用自己写的文件
    /var/log/your_app.log
    /home/user/app/logs/app.log
    
  • systemd 服务日志(最常见)
    journalctl -u your_app.service
    
  • 标准输出(容器 / nohup)
    nohup ./app > app.log 2>&1 &
    

二、直接用 grep 查日志文件

1️⃣ 查关键字(如 error / panic)

grep "error" /var/log/your_app.log

忽略大小写:

grep -i "error" /var/log/your_app.log

2️⃣ 查 Golang 典型错误

grep -E "panic|fatal|error" /var/log/your_app.log

查 panic 堆栈:

grep -A 20 "panic:" /var/log/your_app.log

3️⃣ 按时间查(Golang 常见时间格式)

如果日志里有:

2026-01-21 10:30:00
grep "2026-01-21 10:3" /var/log/your_app.log

4️⃣ 实时查日志(像 tail -f)

tail -f /var/log/your_app.log | grep "error"

三、查 systemd 管理的 Golang 服务

1️⃣ 查当前日志

journalctl -u your_app.service | grep "error"

2️⃣ 实时查

journalctl -u your_app.service -f | grep "panic"

3️⃣ 查某段时间

journalctl -u your_app.service --since "2026-01-21 10:00" --until "2026-01-21 11:00"

四、常用 grep 参数速查

参数 作用
-i 忽略大小写
-E 正则
-A n 显示匹配后 n 行
-B n 显示匹配前 n 行
-C n 前后各 n 行
-v 反向匹配
-n 显示行号

五、实战示例(Golang 常见)

# 查所有 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

如果你愿意,可以:

  • 发一段 真实 Golang 日志样例
  • 或告诉我 日志是怎么启动的(systemd / docker / nohup)

我可以直接帮你写精准 grep 命令。

0 踩