在 Debian 系统上,Golang(Go)程序产生的“日志”在哪里,主要取决于程序自身是怎么写日志的,而不是 Go 语言本身有固定位置。下面分情况说明:
很多 Go 程序(尤其是服务类)默认:
log.Println("something")
fmt.Println("hello")
这种情况日志通常:
journalctl 里查看方式:
journalctl -u 你的服务名
journalctl -u 你的服务名 -f # 实时
如果代码里有:
log.SetOutput(os.OpenFile("/var/log/myapp.log", ...))
常见位置:
/var/log/myapp.log
/var/log/myapp/
~/myapp.log
./logs/app.log
可用:
tail -f /var/log/myapp.log
如:
logruszapzerolog日志路径由配置文件或代码决定,例如:
log:
path: /var/log/myapp/access.log
systemctl list-units --type=service | grep go
或:
systemctl status 你的服务名
journalctl -u 服务名
journalctl -u 服务名 --since today
日志在 Docker:
docker logs 容器名
docker logs -f 容器名
/var/log/
├── syslog
├── messages
├── journal/ # systemd 日志
ps aux | grep 你的程序
systemctl status 程序名
sudo find / -name "*.log" 2>/dev/null | grep 程序名
如果你能告诉我:
我可以帮你精确定位日志位置。