温馨提示×

golang在centos日志如何查

小樊
44
2026-10-11 23:12:13
栏目: 编程语言

在 CentOS 上查看 Go(Golang)程序产生的日志,常见方式取决于你的程序是如何运行和记录日志的。下面按场景给你总结一下:


一、Go 程序作为系统服务(systemd)运行

如果你是用 systemd 管理的 Go 服务(最常见):

查看日志

journalctl -u 你的服务名

例如:

journalctl -u mygoapp

实时查看

journalctl -u mygoapp -f

查看最近 100 行

journalctl -u mygoapp -n 100

按时间查看

journalctl -u mygoapp --since "2024-01-01 00:00:00"

二、Go 程序直接在前台运行

如果你是手动运行:

./mygoapp

日志会直接输出到 终端,或你重定向的地方。

常见重定向方式

./mygoapp > app.log 2>&1 &

查看日志

tail -f app.log

三、Go 程序使用 log 包写入文件

如果代码里类似这样:

log.SetOutput(os.OpenFile("/var/log/mygoapp.log", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644))

查看日志

tail -f /var/log/mygoapp.log

搜索错误

grep ERROR /var/log/mygoapp.log

四、Go 程序使用第三方日志库

常见库

  • logrus
  • zap
  • zerolog

一般都会写文件或 stdout,查看方式和上面一样。


五、系统级日志(程序崩溃)

查看系统日志

journalctl -xe

查看内核 / 系统错误

dmesg | tail

六、常见排错建议

  1. 确认程序有没有启动

    ps -ef | grep mygoapp
    
  2. 确认监听端口

    netstat -tunlp | grep 端口
    
  3. 确认日志路径 检查 Go 代码里日志文件路径是否正确、是否有权限


七、推荐做法(生产环境)

  • 使用 systemd 管理 Go 程序
  • 日志统一输出到 stdout/stderr
  • 由 journald 或 rsyslog 收集
  • 可选:接入 ELK / Loki / Grafana

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

  • Go 程序是怎么启动的(systemd?nohup?docker?)
  • 日志是写到文件还是控制台
  • 报错内容或现象

我可以给你更精确的命令。

0 踩