在 Debian 上用 Go 写的程序,日志放在哪完全取决于你的程序怎么写,Go 本身不强制日志位置。常见情况如下:
如果代码里只是用:
log.Println("xxx")
fmt.Println("xxx")
默认输出到 标准输出 / 标准错误(stdout / stderr),不会自动存文件。
运行方式不同,位置不同:
systemd 服务运行:在 journalctl 里journalctl -u 你的服务名
nohup / & 运行:nohup ./app > app.log 2>&1 &
日志在 app.log比如:
log.SetOutput(os.OpenFile("/var/log/myapp.log", ...))
那日志就在你写的路径,常见位置:
/var/log/你的程序名.log/var/log/myapp/~/myapp.loglogrus / zap / zerologfile 输出路径| 场景 | 位置 |
|---|---|
| systemd 服务 | journalctl |
| 手动指定 | /var/log/*.log |
| Web 服务 | /var/log/nginx, /var/log/apache2 |
| Docker | docker logs 容器名 |
# 找进程
ps aux | grep 你的程序
# 看是不是 systemd
systemctl status 你的服务
# 看文件
sudo ls -l /var/log | grep 程序名
如果你贴一下启动方式或代码,我可以直接告诉你日志在哪。