温馨提示×

怎样用centos搜golang日志

小樊
32
2026-10-06 01:32:28
栏目: 编程语言

在 CentOS 上“搜 Golang 日志”一般分几种情况,下面按常见场景给你说明,基本都能用。


一、Golang 日志写在文件里(最常见)

1️⃣ 用 grep 搜索日志内容

grep "error" /var/log/app/app.log

忽略大小写:

grep -i "timeout" /var/log/app/app.log

显示行号:

grep -n "panic" /var/log/app/app.log

搜索多个关键词:

grep -E "error|fail|panic" /var/log/app/app.log

2️⃣ 实时查看并搜索(tail + grep)

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

只看最近 100 行:

tail -n 100 /var/log/app/app.log | grep "timeout"

3️⃣ 按时间范围搜索(Golang 日志常见格式)

如果日志格式类似:

2026-01-21 10:20:30 error xxxx
sed -n '/2026-01-21 10:00/,/2026-01-21 11:00/p' /var/log/app/app.log

二、Golang 程序用 systemd 运行(无日志文件)

1️⃣ 用 journalctl 查看

journalctl -u your-golang-service

实时查看:

journalctl -u your-golang-service -f

按关键字搜索:

journalctl -u your-golang-service | grep "error"

只看今天:

journalctl -u your-golang-service --since today

三、Golang 日志是 JSON 格式

1️⃣ 用 jq 搜索

cat app.log | jq 'select(.level=="error")'

安装 jq:

yum install jq -y

四、大日志文件高效搜索

1️⃣ 用 zgrep(压缩日志)

zgrep "error" /var/log/app/app.log.1.gz

2️⃣ 用 awk 精确过滤

awk '/error/ {print}' /var/log/app/app.log

五、如果是 Docker 跑的 Golang

docker logs your-container | grep "error"

实时:

docker logs -f your-container | grep "panic"

六、推荐做法(Golang 日志规范)

方便以后搜索:

  • 用 zap / logrus
  • 固定格式(时间 + level + msg)
  • 日志输出到文件 + systemd

如果你愿意,可以告诉我:

  • 日志文件路径
  • 日志格式示例
  • Golang 是怎么运行的(systemd / docker / 直接跑)

我可以帮你写精准的搜索命令。

0 踩