发布于2026-07-28 阅读(0)
扫一扫,手机访问
在CentOS上排查Golang应用日志,说复杂也复杂,说简单也简单。关键在于你清楚自己的应用是怎么跑起来的——是直接写文件?还是通过systemd管理?或者干脆扔在Docker里?不同的部署方式,对应不同的日志查看姿势。下面把几种常见场景拆开说,基本覆盖了绝大多数情况。
如果你的Golang应用把日志输出到了指定文件,比如/var/log/myapp.log,那最直接的办法就是上tail和grep。日常排查时,这两个命令组合几乎能解决80%的问题。

tail -f /path/to/your/app.log,按Ctrl+C退出;grep配合awk。比如只看2025-09-26这一天的:grep '2025-09-26' /path/to/your/app.log | awk '{print $1, $2, $3}'(具体字段数根据日志格式调整);tail -n 100 /path/to/your/app.log。现在很多Go应用都通过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'。如果你的Go应用直接在终端里跑(没有重定向日志),那输出会直接打印在当前终端上。但问题是,历史输出怎么查?
ps aux | grep your_go_app找到进程ID(PID),然后通过journalctl -p -f 查看(注意:这里-p参数可能需根据实际情况调整,更常见的是用journalctl _PID=);./your_app > app.log 2>&1,这样以后查起来方便得多。容器化部署越来越普遍,这时候docker logs就是标配工具。
docker logs -f ;docker logs --tail 100 ;docker logs | grep 'warning' 。sudo,比如sudo journalctl -u my-golang-app.service;logrus的Filename),二是用lsof -p | grep log 找到进程打开的文件句柄;lumberjack这类库,要么用系统自带的logrotate工具,否则日志文件越滚越大,迟早把磁盘撑爆。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8