温馨提示×

golang日志centos如何解析

小樊
45
2026-09-15 06:09:59
栏目: 编程语言

在 CentOS 上解析 Golang 产生的日志,常见做法取决于你的 日志格式 和 使用场景。下面按常见情况给你一套实用方案。


一、先确认 Golang 日志格式

Golang 日志常见格式有:

  1. 标准库 log
2024/01/12 10:22:33 something happened
  1. 结构化日志(推荐)
  • logrus
  • zap
  • slog

示例(JSON):

{"time":"2024-01-12T10:22:33Z","level":"info","msg":"request","path":"/api"}

二、CentOS 上查看和解析日志

1️⃣ 基础查看(所有格式通用)

tail -f /var/log/app.log
less /var/log/app.log
grep "ERROR" /var/log/app.log

三、JSON 格式日志解析(最常见)

方式一:用 jq 解析(最简单)

cat app.log | jq '.'

过滤示例:

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

安装 jq(CentOS):

yum install -y jq

方式二:用 grep + awk(非 JSON)

awk '{print $1, $2, $4}' app.log

四、使用系统日志(rsyslog / journald)

1️⃣ 如果 Golang 日志输出到 stdout

在 CentOS 7+:

journalctl -u your-app.service -f

解析:

journalctl -u your-app.service | jq .

2️⃣ 使用 rsyslog 收集

Golang 日志写入:

/var/log/myapp.log

rsyslog 示例:

*.* /var/log/myapp.log

五、日志集中分析(生产推荐)

方案 1:ELK

  • Filebeat(CentOS 上安装)
  • 收集 /var/log/*.log
  • Kibana 可视化

方案 2:Loki + Grafana

promtail -> loki -> grafana

适合 Kubernetes / 云原生


六、Golang 代码建议(便于解析)

✅ 推荐结构化日志(Zap 示例):

logger, _ := zap.NewProduction()
logger.Info("request",
    zap.String("path", "/api"),
    zap.Int("code", 200),
)

七、快速选择方案

场景 推荐方式
本地调试 tail / less
JSON 日志 jq
生产环境 journald / ELK / Loki
无格式日志 awk / grep

如果你能贴一段 具体 Golang 日志样例,我可以直接帮你写 解析命令或脚本。

0 踩