在 Debian 系统上,Golang 程序本身的日志位置并不固定,主要取决于程序是如何运行的以及日志写到了哪里。下面按常见情况说明:
Go 程序一般用 log 包或第三方库(如 zap、logrus)输出日志:
如果你是手动运行:
./myapp
日志直接打印在当前终端。
如果代码里写了:
log.SetOutput(os.OpenFile("/var/log/myapp.log", ...))
日志在:
/var/log/myapp.log
(路径由程序决定)
如果 Go 程序是用 systemd 管理的:
journalctl -u 服务名
例如:
journalctl -u mygoapp
journalctl -u mygoapp -f # 实时查看
/etc/systemd/system/mygoapp.service
如果你用 supervisor:
一般在:
/var/log/supervisor/
或配置文件中指定的:
stdout_logfile=/var/log/myapp.out.log
stderr_logfile=/var/log/myapp.err.log
查看:
tail -f /var/log/myapp.out.log
docker logs 容器名
docker logs -f 容器名
/var/log/syslog
/var/log/messages
(一般只有 panic、崩溃信息)
ps aux | grep 程序名
systemctl list-units | grep 程序名
如果你愿意,可以告诉我:
我可以帮你精确定位日志文件。