在 Linux 上,Go 程序本身的日志存放在哪里,取决于你的代码怎么写,Go 语言本身没有默认的日志文件位置。下面分情况说明:
log 默认情况log.Println("hello")
./myapp
日志直接打印在终端✅ 没有写文件,除非你自己指定
log.SetOutput(os.OpenFile("/var/log/myapp/app.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644))
常见路径:
/var/log/myapp/
/var/log/myapp.log
/data/logs/myapp/
如果你用 systemd:
[Service]
ExecStart=/usr/local/bin/myapp
日志位置:
journalctl -u myapp.service
或:
/var/log/journal/
Go 日志输出到 stdout / stderr:
docker logs 容器名
实际位置:
/var/lib/docker/containers/xxx/xxx-json.log
这些库:
示例(zap):
zap.NewProduction() // 默认 stderr
log.SetOutput
os.OpenFile
lsof -p <pid> | grep log
Go 日志在 Linux 上没有固定位置,默认在终端 / stderr,真正存哪由你的代码和启动方式决定。
如果你愿意,可以把你的 Go 启动方式或日志代码贴出来,我可以帮你精确定位日志文件。