温馨提示×

CentOS Golang日志如何查询

小樊
49
2025-09-26 13:26:11
栏目: 编程语言

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

1. 直接查看日志文件(适用于自定义路径的日志文件)

若Golang应用将日志输出到指定文件(如/var/log/myapp.log),可使用tail命令实时查看新增日志,或用grep筛选特定内容:

  • 实时查看日志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工具),避免日志文件过大。

0