如何查看CentOS上Golang日志
在CentOS上排查Golang应用时,日志查看几乎是绕不开的操作。不管你是刚把服务跑起来、还是线上出了故障需要快速定位,搞清楚日志在哪里、怎么看,往往能省下大量时间。下面围绕几种常见部署方式,把查看日志的要点逐一拆开讲。 直接在日志文件里翻(日志输出到文件的情况) 如果Golang应用用了标准库的
在CentOS上排查Golang应用时,日志查看几乎是绕不开的操作。不管你是刚把服务跑起来、还是线上出了故障需要快速定位,搞清楚日志在哪里、怎么看,往往能省下大量时间。下面围绕几种常见部署方式,把查看日志的要点逐一拆开讲。

直接在日志文件里翻(日志输出到文件的情况)
如果Golang应用用了标准库的log包或者第三方库(比如logrus、zap)把日志写进了文件——最常见的就是app.log这类——那么Linux下的经典命令就能搞定:
- 想看完整内容,直接
cat /path/to/app.log(记得换成实际路径); - 实时监控新写入的行,用
tail -f /path/to/app.log,这招在调试时特别实用; - 要慢慢翻阅,
less /path/to/app.log更顺手,上下翻页、按q退出; - 只想揪出ERROR级别的日志,
grep "ERROR" /path/to/app.log一行搞定,快速定位问题。
systemd服务的日志:journalctl登场
如果Golang应用是以systemd服务的形式运行的(服务文件通常放在/etc/systemd/system/yourapp.service),那么日志就归systemd的journald管了。这时用journalctl命令是标准做法:
sudo journalctl -u yourapp.service—— 查看指定服务的全部日志;- 加个
-f参数(sudo journalctl -u yourapp.service -f)就能像tail -f一样实时跟踪; - 想看某个时间点之后的日志,用
--since参数:sudo journalctl --since "2025-10-01 00:00:00" -u yourapp.service; - 只关注最近几条,
-n 10指定行数,比如sudo journalctl -u yourapp.service -n 10。
开发调试时:直接看终端输出
开发阶段最直接的方式就是直接在终端跑应用。不管是用go run main.go还是直接跑编译后的二进制./myapp,日志都会刷刷地显示在终端上。如果想把输出保存下来,用重定向就行:
./myapp > app.log 2>&1
这条命令把标准输出和标准错误都重定向到同一个文件,之后就可以用tail -f app.log随时查看了。
生产环境:上点高级工具
当应用上了生产、日志量变大后,单纯靠命令行翻文件就不那么高效了。行业里常见的做法是引入专门的日志管理工具:
- ELK Stack(Elasticsearch + Logstash + Kibana) —— 收集、存储、分析一条龙,Kibana的仪表盘能让日志一目了然;
- Fluentd —— 统一的日志收集层,能把日志转发到Elasticsearch、S3等各种后端;
- Prometheus + Grafana —— 虽然主要是监控指标,但结合日志数据做关联分析,效果也很不错。
以上几种方式基本覆盖了CentOS上查看Golang日志的常见场景。实际用的时候,根据应用运行方式和你的需求灵活选择就好。


































