温馨提示×

怎样查debian golang日志错误

小樊
49
2026-09-22 10:00:32
栏目: 编程语言

在 Debian 上排查 Golang 程序日志/错误,通常分几种情况:你是想看 系统日志、服务日志,还是 程序自身打印的报错。下面按常见场景给你一份实用指南。


一、程序直接运行(命令行)

1. 直接看终端输出

go run main.go
# 或
./your-program

Golang 的 log、fmt.Println、panic 都会直接输出到终端。

2. 重定向到日志文件

./your-program > app.log 2>&1

查看:

tail -f app.log

二、作为 systemd 服务运行(最常见)

1. 查看服务日志

假设服务名是 myapp:

sudo journalctl -u myapp -f

查看错误:

sudo journalctl -u myapp -p err

2. 查看启动失败原因

systemctl status myapp

三、Golang 自身错误排查

1. panic / 崩溃

典型样子:

panic: runtime error: invalid memory address
goroutine 1 [running]:

解决建议:

  • 看 stack trace
  • 加 recover()
  • 用 log.Fatal / log.Panic

2. 使用标准日志

import "log"

log.SetFlags(log.LstdFlags | log.Lshortfile)
log.Println("something wrong")

四、日志文件位置(常见)

类型 位置
systemd 日志 journalctl
自定义日志 /var/log/yourapp.log
Nginx + Go /var/log/nginx/error.log
系统日志 /var/log/syslog

五、常用排查命令

# 实时看日志
tail -f /var/log/yourapp.log

# 搜错误
grep -i error /var/log/yourapp.log

# 看最近系统错误
sudo dmesg | tail

六、推荐做法(生产环境)

  • 用 logrus / zap
  • 日志写文件 + systemd
  • 设置 GOTRACEBACK=all
GOTRACEBACK=all ./yourapp

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

  • 是 systemd / docker / 裸跑
  • 报错内容或截图
  • Go 版本(go version)

我可以更精确地帮你定位。

0 踩