温馨提示×

golang日志级别debian怎设置

小樊
35
2026-10-21 17:45:16
栏目: 编程语言

在 Debian 上用 Golang 程序设置日志级别,通常分两种情况:


一、Go 程序自身的日志级别(代码层面)

Go 标准库 log 没有日志级别(只有 Print/Fatal/Panic)。
常用做法是:

1️⃣ 使用第三方日志库(推荐)

如 logrus、zap、slog(Go 1.21+)

示例:logrus

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

示例:slog(官方,Go 1.21+)

import "log/slog"

func main() {
    logger := slog.New(slog.NewTextHandler(os.Stdout, &slog.HandlerOptions{
        Level: slog.LevelDebug,
    }))
    logger.Debug("debug message")
}

二、通过 Debian 环境变量 / systemd 控制日志级别

如果你把 Go 程序作为 systemd 服务 运行:

1️⃣ 在 service 文件中设置环境变量

[Service]
Environment=LOG_LEVEL=debug
ExecStart=/usr/local/bin/yourapp

Go 代码读取:

level := os.Getenv("LOG_LEVEL")

2️⃣ journalctl 查看日志

journalctl -u yourapp.service -f

三、生产环境建议

  • 开发:Debug
  • 生产:Info 或 Warn
  • 配合 systemd + journald
  • 不要打印敏感信息

如果你能告诉我:

  • 用的是什么日志库(logrus / zap / slog / 自定义)
  • 是 systemd 服务还是直接运行

我可以给你更精确的 Debian + Go 配置示例。

0 踩