在 Debian 上查看 Golang 程序日志,取决于程序是怎么运行的、日志写到哪里。下面按常见情况说明:
./your_program
日志直接打印在当前终端。
nohup ./your_program > app.log 2>&1 &
查看日志:
tail -f app.log
如果你是用 systemd 运行 Go 程序(推荐方式):
sudo journalctl -u your-service-name
实时查看:
sudo journalctl -u your-service-name -f
只看最近 100 行:
sudo journalctl -u your-service-name -n 100
[Unit]
Description=Go App
[Service]
ExecStart=/opt/app/your_program
WorkingDirectory=/opt/app
User=appuser
Restart=always
[Install]
WantedBy=multi-user.target
很多 Go 程序用 log.SetOutput() 或 zap / logrus 写文件,比如:
log.SetOutput(os.OpenFile("/var/log/app.log", ...))
查看:
tail -f /var/log/app.log
常见路径:
/var/log//opt/app/logs/docker logs container_name
docker logs -f container_name
ps aux | grep your_program
os.Exit() 太早| 运行方式 | 日志位置 |
|---|---|
| 终端运行 | 终端 |
| nohup | 指定文件 |
| systemd | journalctl |
| Docker | docker logs |
| 写文件 | 指定路径 |
如果你愿意,可以告诉我:
log 还是 zap/logrus我可以给你精准的查看方式。