温馨提示×

Golang打包的CentOS日志如何查看

小樊
36
2025-10-07 06:33:25
栏目: 编程语言

在CentOS系统中查看Golang打包应用程序日志的方法

1. 根据日志输出目标选择对应查看方式

Golang应用程序的日志输出目标(控制台、文件、系统日志)决定了查看方法,需先确认日志的输出位置(可通过应用程序配置文件、源代码中的日志库配置或启动命令判断)。

(1)日志输出到控制台

若应用程序在终端中直接运行(如通过./myapp启动),日志会实时显示在终端窗口中。若需保存终端输出,可通过重定向命令将日志保存到文件:

./myapp > myapp.log 2>&1  # 将标准输出(stdout)和标准错误(stderr)重定向到myapp.log文件

之后可使用文本编辑器(如vimnano)或cat命令查看文件内容:

cat myapp.log          # 查看完整日志
tail -f myapp.log      # 实时查看日志新增内容
(2)日志输出到指定文件

若应用程序将日志写入到指定文件(常见路径如/var/log/your_app_name/app.log/tmp/your_app_name.log或代码中配置的路径),可直接使用以下命令查看:

# 查看完整日志文件
cat /path/to/your/app.log  

# 实时跟踪日志新增内容(推荐)
tail -f /path/to/your/app.log  

# 查看日志最后100行
tail -n 100 /path/to/your/app.log  

# 搜索包含关键字的日志(如“error”)
grep "error" /path/to/your/app.log
(3)日志输出到系统日志(systemd服务)

若应用程序以systemd服务形式运行(如通过systemctl start your_app.service启动),日志会被收集到系统日志中,需使用journalctl命令查看:

# 查看指定服务的所有日志
sudo journalctl -u your_app.service  

# 实时跟踪服务日志
sudo journalctl -u your_app.service -f  

# 查看自特定时间起的日志(如2025-10-01以来)
sudo journalctl -u your_app.service --since "2025-10-01"  

# 搜索包含关键字的日志(如“failed”)
sudo journalctl -u your_app.service | grep "failed"

2. 常见第三方日志库的日志查看方式

若应用程序使用第三方日志库(如logruszap),日志通常仍输出到文件或系统日志,查看方法与上述一致。例如:

  • logrus默认输出到stderr,若未配置文件输出,可通过journalctl(systemd服务)或终端查看;
  • zap高性能日志库支持JSON格式输出,可通过tail -f查看结构化日志(需配置输出到文件)。

3. 日志轮转配置(生产环境建议)

为避免日志文件过大,建议配置日志轮转(如使用lumberjack库)。配置后,日志会按大小(如100MB)或时间(如每天)分割,保留指定数量的旧日志(如7天),并自动压缩。查看轮转后的日志时,只需关注最新的日志文件(如app.log)或压缩文件(如app.log.2025-10-01.gz),方法与上述一致。

通过以上方法,可根据Golang应用程序的日志输出配置,在CentOS系统中高效查看和管理日志。

0