在 Debian 上,Golang 程序本身的日志位置并不固定,主要取决于程序是如何运行、如何写日志的。下面按常见情况说明:
Go 程序本身不会自动产生系统日志,只有在代码中显式写日志时才会生成,例如:
log.Println("hello")
或使用了 log / zap / logrus 等日志库。
日志直接输出到:
日志不会写到文件,而是由 systemd 接管。
查看方式:
journalctl -u 服务名
例如:
journalctl -u mygoapp
journalctl -u mygoapp -f # 实时查看
✅ 这是 Debian 上 Go 服务最推荐、最常见的日志位置
如果代码里明确指定了日志文件:
logFile, _ := os.OpenFile("/var/log/myapp.log", os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0644)
log.SetOutput(logFile)
那么日志就在:
/var/log/myapp.log
(路径由程序决定)
如果 Go 程序主动调用了 syslog:
syslog.New(syslog.LOG_INFO, "myapp")
那么日志可能在:
/var/log/syslog
查看:
grep myapp /var/log/syslog
如果是 Docker 容器:
docker logs 容器名
Go 的 stdout/stderr 会被 Docker 捕获。
如果你是问 Go 语言本身(编译器)的日志:
➡️ Go 编译器本身没有日志
相关路径通常为:
/usr/local/go # 手动安装
/usr/lib/go # apt 安装
你可以告诉我:
log.Println 还是写文件我可以帮你精确定位日志位置。
如果你愿意,也可以贴一段 Go 启动方式或 service 文件。