在 Debian 上用 Golang 程序设置日志级别,通常分两种情况:
Go 标准库 log 没有日志级别(只有 Print/Fatal/Panic)。
常用做法是:
如 logrus、zap、slog(Go 1.21+)
import "github.com/sirupsen/logrus"
func main() {
logrus.SetLevel(logrus.DebugLevel) // 设置级别
logrus.Debug("debug info")
logrus.Info("info")
}
级别:
Panic < Fatal < Error < Warn < Info < Debug < Trace
import "log/slog"
func main() {
logger := slog.New(slog.NewTextHandler(os.Stdout, &slog.HandlerOptions{
Level: slog.LevelDebug,
}))
logger.Debug("debug message")
}
如果你把 Go 程序作为 systemd 服务 运行:
[Service]
Environment=LOG_LEVEL=debug
ExecStart=/usr/local/bin/yourapp
Go 代码读取:
level := os.Getenv("LOG_LEVEL")
journalctl -u yourapp.service -f
systemd + journald如果你能告诉我:
我可以给你更精确的 Debian + Go 配置示例。