温馨提示×

Debian如何找Golang日志

小樊
46
2026-07-27 11:24:55
栏目: 编程语言

在 Debian 系统上查找 Golang(Go)程序日志,取决于你的程序是如何运行、如何打日志的。下面按常见场景给你一个完整排查思路。


一、先确认:Go 程序日志通常写在哪里?

Go 程序本身没有统一日志位置,常见情况有:

场景 日志位置
fmt.Println / log.Println 标准输出(stdout)
自己写文件 程序指定路径
systemd 服务 journalctl
Docker 容器 docker logs
Web 框架(gin / echo) 框架配置
syslog /var/log/syslog

二、如果 Go 程序是通过 systemd 运行的(最常见)

1️⃣ 查看服务名

systemctl list-units --type=service | grep go

或直接看你的服务名,例如:

systemctl status your-go-service

2️⃣ 查看日志(重点)

journalctl -u your-go-service -f

常用参数:

journalctl -u your-go-service --since today
journalctl -u your-go-service -n 100

这是 Debian / Ubuntu 上找 Go 日志最推荐的方式


三、如果 Go 程序直接在终端运行

1️⃣ 标准输出日志

./your-go-app

日志会直接打在终端。

2️⃣ 如果重定向过

./your-go-app > app.log 2>&1

查看:

cat app.log
tail -f app.log

四、查找 Go 程序自己写的日志文件

1️⃣ 查找常见日志目录

ls /var/log/

2️⃣ 搜索日志文件

find / -name "*.log" 2>/dev/null | grep go

或者:

find /var/log -type f

五、如果 Go 程序写入 syslog

查看系统日志

grep -i go /var/log/syslog

或实时查看:

tail -f /var/log/syslog

六、如果 Go 程序运行在 Docker 中

查看容器日志

docker ps
docker logs <container_id>
docker logs -f <container_id>

七、从 Go 程序本身反推日志位置(很实用)

1️⃣ 查看源码

log.SetOutput(os.OpenFile("/var/log/myapp.log", ...))

或:

fmt.Println()
log.Println()

2️⃣ 查看进程打开的文件

ls -l /proc/$(pidof your-go-app)/fd

八、常用排查命令速查表

# 查看所有日志
journalctl -f

# 查看某个服务
journalctl -u your-go-service -f

# 查看系统日志
tail -f /var/log/syslog

# 查找日志文件
find / -name "*.log" 2>/dev/null

# 查看进程
ps aux | grep go

九、如果你愿意,我可以更精确帮你

你可以直接告诉我:

  1. Go 程序是怎么启动的?(systemd / docker / 手动)
  2. 用的是 哪个日志库?(log / zap / logrus / gin)
  3. Debian 版本(cat /etc/debian_version

我可以一步一步帮你定位到具体日志文件

0