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

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]段追加配置,把标准输出和错误追加到指定文件:
或者更“干净”一点,直接交给systemd的日志系统(不用手动指定文件):StandardOutput=append:/var/log/yourapp.logStandardError=append:/var/log/yourapp.logStandardOutput=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. 使用日志收集工具(大规模生产环境)
一旦你的服务上了规模,或者系统是分布式的,单机用tail、grep就有点力不从心了。这个时候,ELK Stack(Elasticsearch+Logstash+Kibana)或者Fluentd这类工具就是标配。思路很简单:在应用中把日志输出到工具采集的端点(比如Logstash的TCP/UDP端口),然后由工具统一收集、索引、搜索和可视化。一台机器上查日志的时代就过去了,你会爱上Kibana的搜索栏的。
注意事项
- 如果怎么也找不到日志,先回头检查应用代码:
os.OpenFile是不是成功了?路径权限对不对?日志配置有没有生效? - 生产环境里,日志文件跑着跑着就可能几GB甚至几十GB,必须做日志轮转(
logrotate是Linux必备,Golang也有第三方库比如lumberjack支持在代码里直接轮转)。别让一个日志文件撑爆磁盘。
IntelliJ IDEA 是 JetBrains 推出的专业集成开发环境,重点服务于 Java、Kotlin 与 JVM 项目开发。软件集成代码补全、静态检查、重构、调试、测试、版本控制及构建工具,并可借助插件扩展语言和框架支持。
JetBrains PyCharm 是面向 Python 开发者的集成开发环境,提供智能补全、代码检查、重构、调试、测试、版本控制及虚拟环境管理功能。Mac 版兼容 Intel 与 Apple 芯片,核心功能可免费使用。
JetBrains WebStorm 是面向 JavaScript、TypeScript 和现代 Web 技术的专业集成开发环境,可智能理解项目结构,提供代码补全、重构、错误检查、运行调试、测试及 Git 工具。
JetBrains IntelliJ IDEA 是以 Java、Kotlin 和 JVM 项目为核心的专业集成开发环境,提供智能补全、代码检查、安全重构、调试、测试、版本控制及构建工具集成。统一发行版的核心功能可免费用于商业和非商业项目,
PhpStorm 是 JetBrains 面向 PHP 与现代 Web 开发打造的专业集成开发环境,提供代码补全、静态检查、重构、调试、测试、数据库、版本控制及前端语言支持。Windows 用户可直接下载安装程序,
PyCharm 是 JetBrains 推出的 Python 集成开发环境,提供智能代码补全、错误检查、重构、调试、测试、Git、终端及 Jupyter Notebook 支持。统一版安装后可体验 30 天 Pro 功能,













