gpt4 book ai didi

logging - 无法发送 logrus 输出/dev/null

转载 作者:数据小太阳 更新时间:2023-10-29 03:13:23 24 4
gpt4 key购买 nike

我正在使用 Logrus用于登录我的项目的包。

一切正常,但出于测试目的,我不需要显示 logrus 输出。

我正在查看 logrus.SetOuput 寻找答案。

所以基本上我希望将日志写入/dev/null

但出于某种原因,我仍然在 STDOUT 上看到日志

   // This code run right at the start
if env == "test" {
fmt.Println("Entering test mode ....")
logrus.SetOutput(ioutil.Discard)
return
}

这是我的记录器设置的样子

// logger.go

package logger

import(
"os"
"io/ioutil"
"github.com/Sirupsen/logrus"
)

var log *logrus.Logger

const (
DEBUG = 0
INFO = 1
WARNING = 2
ERROR = 3
)

func init() {
env := os.GetEnv("ENV")
if env != "test" {
return
}
logrus.SetOutput(ioutil.Discard)
}


func Init(logLevl int) {
log = logrus.New()
log.Formatter = &logrus.TextFormatter{FullTimestamp: true}
switch logLevl {
case DEBUG:
log.Level = logrus.DebugLevel
case INFO:
log.Level = logrus.InfoLevel
case WARNING:
log.Level = logrus.WarnLevel
case ERROR:
log.Level = logrus.ErrorLevel
}
}

func Get() *logrus.Logger {
return log
}

func I(args ...interface{}) {
log.Info(args)
}

func Df(format string, args ...interface{}) {
log.Debugf(format, args)
}

func D(args ...interface{}) {
log.Debug(args)
}

func W(args ...interface{}) {
log.Warn(args)
}

下面是我如何使用 logger

import "logger"

func init() {
logger.Init(0)
}

logger.D("Dummy string")

最佳答案

您在代码中使用了两个不同的 logrus.Logger 变量。第一个在 init() 中调用,是从 logrus 导出的全局默认 Logger。稍后,在您的自定义初始化函数 Init(logLevel int) 中,您将通过 logrus.New() 创建一个新的 Logger,此后用于日志记录 — 但尚未配置为使用不同的输出。

我建议摆脱 init() 函数并在 Init(logLevel int) 中进行所有初始化(请注意用于设置输出的不同 API)。

func Init(logLevl int) {
log = logrus.New()
log.Formatter = &logrus.TextFormatter{FullTimestamp: true}
switch logLevl {
case DEBUG:
log.Level = logrus.DebugLevel
case INFO:
log.Level = logrus.InfoLevel
case WARNING:
log.Level = logrus.WarnLevel
case ERROR:
log.Level = logrus.ErrorLevel
}

env := os.Getenv("ENV")
if env != "test" {
return
}
log.Out = ioutil.Discard
}

关于logging - 无法发送 logrus 输出/dev/null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44795041/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com