CentOS Golang日志怎样查询

作者:袖梨 2026-07-29

Golang应用程序在CentOS系统下的常见日志查询方法

1. 直接检查日志文件(适合日志文件采用自定义路径的情况)

如果Golang应用把日志写入指定文件(如/var/log/myapp.log),可以通过tail命令跟踪新增加的日志,也可以用grep过滤指定内容:

CentOS Golang日志如何查询

  • 实时跟踪日志:tail -f /path/to/your/app.log(按Ctrl+C终止);
  • 查看特定时间段日志:结合grepawk,例如查看2025-09-26的日志:grep '2025-09-26' /path/to/your/app.log | awk '{print $1, $2, $3}'(调整字段数量适配日志格式);
  • 检查末尾N行:tail -n 100 /path/to/your/app.log(展示末尾100行)。

2. 查看由systemd管理的应用日志:使用systemd服务

若Golang应用以systemd服务(如my-golang-app.service)运行,可使用journalctl命令查询系统日志:

  • 实时查看服务日志:journalctl -u my-golang-app.service -f
  • 查看指定时间范围的日志:journalctl -u my-golang-app.service --since "2025-09-26" --until "2025-09-27"
  • 过滤关键字:journalctl -u my-golang-app.service | grep 'error'(筛选含“error”的日志行)。

3. 直接运行应用时,检查错误/标准输出

未重定向日志时,直接在终端运行的Golang应用会把输出呈现在当前终端;对于历史输出,可按以下方式查看:

  • 若进程仍然运行:先通过ps aux | grep your_go_app查到进程ID(PID),然后用journalctl -p <PID> -f进行查看;
  • 若进程已经结束:标准输出或错误可能不再保留,建议预先把日志重定向至文件(如./your_app > app.log 2>&1)。

4. 容器化部署应用时,从Docker容器中查看日志

若Golang应用运行在Docker容器中,可通过docker logs命令查看容器日志:

  • 实时查看容器日志:docker logs -f <container_id_or_name>
  • 查看最后N行:docker logs --tail 100 <container_id_or_name>
  • 筛选关键字:docker logs <container_id_or_name> | grep 'warning'

相关注意事项

  • 权限问题:若日志文件或systemd服务属于root用户,需用sudo提升权限(如sudo journalctl -u my-golang-app.service);
  • 确认日志路径:不清楚日志文件所在路径时,可查看应用代码(如logrusFilename配置)或者使用lsof -p <PID> | grep log命令进行查找;
  • 日志轮转:应用需要长期运行时,日志轮转应予以配置(如使用lumberjack库或logrotate工具),防止日志文件变得过大。

相关文章

精彩推荐