温馨提示×

golang日志在linux哪查找

小樊
45
2026-10-02 14:05:55
栏目: 编程语言

在 Linux 上查找 Golang 程序日志,主要取决于你的程序是如何写日志的,常见情况如下:


一、标准输出 / 标准错误(最常见)

如果 Go 程序直接用:

log.Println("xxx")
fmt.Println("xxx")

日志通常会输出到:

1. 前台运行

./your_app

日志直接打印在当前终端

2. 后台运行(nohup / &)

nohup ./your_app > app.log 2>&1 &

日志在:

app.log

3. systemd 服务

如果是 systemd 启动的 Go 程序:

journalctl -u your-service-name

实时查看:

journalctl -u your-service-name -f

二、日志写到文件

如果代码里明确指定了日志文件,例如:

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

常见位置:

/var/log/
/var/log/myapp/
/home/user/myapp/log/

查找日志文件:

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

三、使用第三方日志库

常见库

  • zap
  • logrus
  • zerolog
  • slog(Go 1.21+)

一般都会在配置中指定路径,例如:

log:
  path: /var/log/myapp

检查:

cat /etc/myapp/config.yaml

四、Docker 中的 Go 日志

如果是容器运行:

docker logs 容器名
docker logs -f 容器名

K8s:

kubectl logs pod-name

五、快速排查命令

# 看进程
ps -ef | grep your_app

# 看打开的文件
lsof -p PID

# 看日志文件
tail -f /var/log/myapp.log

六、如果你愿意

你可以告诉我:

  • Go 程序是怎么启动的(直接运行 / systemd / docker)
  • 用的什么日志库
  • 是否有配置文件

我可以帮你精确定位日志位置。

0 踩