在 Golang 中,“运行日志”要看日志是写到哪里的。下面按常见场景给你一个完整说明。
logimport "log"
log.Println("hello")
log.Printf("value=%d", 123)
默认输出位置:
查看方式:
# 前台运行
go run main.go
# 后台运行
./main 2>&1 | tee app.log
f, _ := os.OpenFile("app.log", os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0644)
log.SetOutput(f)
查看:
tail -f app.log
logruslog.Info("start")
log.Errorf("error: %v", err)
查看方式:
cat app.log | jq
zaplogger.Info("hello")
通常输出到:
nohup ./main > app.log 2>&1 &
查看:
tail -f app.log
journalctl -u your-service-name -f
docker logs -f 容器ID
如果日志被重定向到文件:
docker exec -it 容器ID cat /app/app.log
查看:
./main 2> panic.log
或容器:
docker logs 容器ID
GODEBUG=gctrace=1 ./main
输出:
✅ 先看程序有没有输出:
ps aux | grep main
✅ 看 stdout / stderr:
lsof -p PID
✅ 搜索日志文件:
find / -name "*.log" 2>/dev/null
✔ 统一日志输出到 stdout + stderr
✔ 用 Docker / systemd / 日志采集系统接管
✔ 不要自己管理日志文件(除非必要)
如果你愿意,可以告诉我:
我可以给你针对你环境的精确查看方式。