温馨提示×

debian golang日志在哪看

小樊
40
2026-10-04 04:43:17
栏目: 编程语言

在 Debian 上查看 Golang 程序日志,取决于程序是怎么运行的、日志写到哪里。下面按常见情况说明:


一、最常用:看程序自己输出的日志

1. 前台运行(终端直接跑)

./your_program

日志直接打印在当前终端。


2. 后台运行(nohup / &)

nohup ./your_program > app.log 2>&1 &

查看日志:

tail -f app.log

二、用 systemd 管理的 Golang 服务(最常见)

如果你是用 systemd 运行 Go 程序(推荐方式):

查看日志

sudo journalctl -u your-service-name

实时查看:

sudo journalctl -u your-service-name -f

只看最近 100 行:

sudo journalctl -u your-service-name -n 100

示例 service 文件

[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 里运行的 Golang

docker logs container_name
docker logs -f container_name

五、排查“看不到日志”的情况

  1. 确认日志写到哪
    ps aux | grep your_program
    
  2. 确认 stdout / stderr
    • systemd 默认捕获 stdout
    • 不要自己 os.Exit() 太早
  3. 确认没被日志库吞掉
    • zap / logrus 有 level 设置

六、快速判断总结

运行方式 日志位置
终端运行 终端
nohup 指定文件
systemd journalctl
Docker docker logs
写文件 指定路径

如果你愿意,可以告诉我:

  • 你的 Go 程序是怎么启动的(systemd?docker?脚本?)
  • 用的是原生 log 还是 zap/logrus

我可以给你精准的查看方式。

0 踩