商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > 如何查看CentOS上Golang的日志

如何查看CentOS上Golang的日志

  发布于2026-07-13 阅读(0)

扫一扫,手机访问

如何在CentOS上查看Golang日志

在CentOS上排查Golang应用的日志,其实没有固定的“万能钥匙”——关键要看应用是怎么输出日志的。是写到了文件里,还是直接扔给了标准输出/错误?是通过systemd跑的,还是装在Docker容器里?下面针对几种常见场景,把对应的查看方法拆开来说。

如何查看CentOS上Golang的日志

1. 直接查看日志文件(最常见场景)

如果Golang应用通过log.SetOutput()把日志写到了文件里(比如app.log),那操作就非常直接了:

  • 想看完整内容:cat /path/to/app.log(记得把路径换成实际日志文件的绝对路径)
  • 想实时追着新日志走:tail -f /path/to/app.log,按Ctrl+C
  • 想一页一页翻着看:less /path/to/app.log,看完按q退出
  • 只想看错误相关的:grep "ERROR" /path/to/app.log,只显示包含“ERROR”的行

这里有个小坑——如果应用代码里没有显式指定日志路径,日志可能会默认输出到应用的工作目录。可以用os.Getwd()在代码里获取当前目录,或者干脆全局搜一把:find / -name "*.log" 2>/dev/null

2. 通过systemd服务查看(推荐生产环境使用)

生产环境下很多应用都是当作systemd服务来管理的(服务文件在/etc/systemd/system/yourapp.service)。这种情况下,需要先在服务文件里配置日志重定向:

  • [Service]段追加配置,把标准输出和错误追加到指定文件:
    StandardOutput=append:/var/log/yourapp.logStandardError=append:/var/log/yourapp.log
    或者更“干净”一点,直接交给systemd的日志系统(不用手动指定文件):
    StandardOutput=syslogStandardError=syslogSyslogIdentifier=my-golang-app
  • 配置改完,需要重载并重启服务:
    sudo systemctl daemon-reloadsudo systemctl restart yourapp
  • 查看日志就用journalctl
    sudo journalctl -u yourapp -f  # -u指定服务名,-f实时刷新
    还可以加上时间过滤(比如--since "2025-10-01")或者关键字过滤(比如-g "panic"),非常灵活。

3. 查看Docker容器中的日志(若应用运行在容器内)

如果应用是跑在Docker容器里的,那就不能直接在宿主机上找文件了,得通过容器来查:

  • 先拿到容器ID或名称:docker ps
  • 实时看日志:docker logs -f <容器ID或名称>(按Ctrl+C停止)
  • 只看最后100行:docker logs --tail 100 <容器ID或名称>

这个命令会把容器内标准输出/错误的内容拉出来,前提是应用把日志写到了stdout/stderr(Golang推荐的做法之一)。

4. 使用日志收集工具(大规模生产环境)

一旦你的服务上了规模,或者系统是分布式的,单机用tailgrep就有点力不从心了。这个时候,ELK Stack(Elasticsearch+Logstash+Kibana)或者Fluentd这类工具就是标配。思路很简单:在应用中把日志输出到工具采集的端点(比如Logstash的TCP/UDP端口),然后由工具统一收集、索引、搜索和可视化。一台机器上查日志的时代就过去了,你会爱上Kibana的搜索栏的。

注意事项

  • 如果怎么也找不到日志,先回头检查应用代码:os.OpenFile是不是成功了?路径权限对不对?日志配置有没有生效?
  • 生产环境里,日志文件跑着跑着就可能几GB甚至几十GB,必须做日志轮转(logrotate是Linux必备,Golang也有第三方库比如lumberjack支持在代码里直接轮转)。别让一个日志文件撑爆磁盘。
本文转载于:https://www.yisu.com/ask/71873521.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注