温馨提示×

Debian下Golang日志在哪

小樊
37
2026-07-13 00:40:02
栏目: 编程语言

Debian 下,Golang 本身没有统一的日志文件,日志位置取决于 你的程序是如何运行和配置的。下面按常见场景说明:


一、Golang 程序自己写日志的情况(最常见)

如果程序里用了:

log.Println("xxx")

fmt.Println,日志输出位置取决于 程序启动方式

1️⃣ 直接运行(终端)

go run main.go

✅ 日志输出在 终端标准输出(stdout)


2️⃣ 后台运行(systemd 服务)

这是 Debian 上最常见的情况。

查看日志:

journalctl -u 服务名
journalctl -u 服务名 -f   # 实时查看

例如:

journalctl -u myapp

systemd 会自动接管 stdout/stderr 作为日志


3️⃣ 输出重定向到文件

如果启动命令类似:

./myapp > /var/log/myapp.log 2>&1

✅ 日志在:

/var/log/myapp.log

或你指定的路径。


二、使用第三方日志库

常见库

  • log/slog
  • logrus
  • zap
  • zerolog

这些库通常需要你手动指定日志文件路径,例如:

logFile, _ := os.OpenFile("/var/log/myapp.log", os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0644)
log.SetOutput(logFile)

✅ 日志就在你配置的文件里。


三、Golang 运行时错误(panic / crash)

1️⃣ systemd 服务

journalctl -u 服务名 -e

2️⃣ Docker 容器

docker logs 容器名

四、Debian 系统常见日志目录

目录 说明
/var/log/ 系统日志
/var/log/syslog 系统通用日志
/var/log/journal/ systemd 日志存储
journalctl 查看 systemd 日志

五、快速排查建议

你可以按下面顺序查:

# 1. 是否 systemd 服务
systemctl status 服务名

# 2. 查看服务日志
journalctl -u 服务名 -f

# 3. 检查程序是否写了日志文件
ls /var/log/

六、如果你想让我精确帮你定位

可以告诉我:

  1. 程序是 直接运行 / systemd / Docker / 宝塔 / supervisor
  2. 是否使用了 日志库
  3. 启动命令或 systemd 配置

我可以一步一步帮你找到日志位置 ✅

0