在 Linux 上,Golang 程序本身的日志并没有“固定存放位置”,取决于你(或程序)怎么写日志。下面分情况说明:
loglog.Println("hello")
./app
日志会直接打印在终端
./app > app.log 2>&1 &
日志在:
当前目录/app.log
✅ Go 不自动写文件,也不像 Java 有固定日志目录
如果 Go 程序是用 systemd 管理的:
systemctl status yourapp
journalctl -u yourapp
✅ 日志在:
journalctl(systemd journal)
查看文件位置(一般情况):
/var/log/journal/
很多 Go 项目会自己写:
log.SetOutput(os.OpenFile("/var/log/myapp/app.log", ...))
常见路径:
/var/log/myapp/
/var/log/myapp.log
/data/logs/myapp/
✅ 这是“你代码决定放哪”
| 日志库 | 默认位置 |
|---|---|
| log | stderr |
| zap | 看你配置 |
| logrus | 看你配置 |
| zerolog | 看你配置 |
⚠️ 没有默认文件,必须自己指定
# 看进程
ps aux | grep yourapp
# 看打开的文件
lsof -p <pid>
# 看 systemd
journalctl -u yourapp -f
# 全盘搜日志
find / -name "*.log" 2>/dev/null | grep app
/var/log/<appname>/app.log
配合:
如果你愿意,可以告诉我:
我可以直接告诉你日志现在在哪、该怎么配。