- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在使用 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/
我正在尝试转换 https://github.com/appscode/voyager从 glide 到 go mod。 我收到如下错误: go: github.com/Sirupsen/logrus
我正在使用 ory-am/hydra,它让我在 Golang 库 gopkg.in/gorethink/gorethink.v3 中出错,错误如下: ../../../gopkg.in/gorethi
logrus是go的一个日志框架,它最让人激动的应该是hook机制,可以在初始化时为logrus添加hook,logrus可以实现各种扩展功能,可以将日志输出到elasticsearch和activ
我正在使用 Logrus,我遇到了在其日志中显示 & 字符的问题: logger.WithFields(logrus.Fields{ "value": "value&value", }
我在我所有的 go 应用程序中都使用 logrus,最近我开始使用上下文记录器。现在我想在我的应用程序的执行路径中“建立”一个上下文。请参见下面的示例,它说明了我想要什么。 package main
我正在尝试从 Golang 日志包转换到 Logrus .我的问题是关于如何自定义记录消息的时间戳格式。默认值是自启动以来的秒数,但我想要“2016-03-24 17:10:15”格式。我的简单测试代
我在 Go 应用程序中使用 logrus。我相信这个问题也适用于任何其他日志记录包(不提供基于外部文件的配置)。 logrus 提供设置各种配置的功能,例如SetOutput、SetLevel 等。
本文主要介绍 Golang 中最佳日志解决方案,包括常用日志包logrus 的基本使用,如何结合file-rotatelogs 包实现日志文件的轮转切割两大话题。 Golang 关于日志处理有很多
免责声明:我已经和 go 一起工作了……大约一天。我在这里是一个真正的n00b... 我想要一个 logrus 记录器,它在 main() 中配置了默认字段,所以我不必指望其他开发人员每次都记录所需的
我正在使用 logrus我的 Go 项目中用于结构化日志记录的库。 我的 logrus 配置如下: // Global variable for logging var gLog = &Logger{
所以我开始使用“logrus”。我将它设置在我自己的记录器包中,如下所示: package logger import( log "github.com/Sirupsen/logru
我在 golang 中使用 logrus 来记录到文件。现在,logrus 正在使用字段名称记录到文件。 即 time="26-03-2017 03:37:58"level=error msg="不是
我使用 Go logrus,我需要更改输出消息的格式。我尝试了几件事都没有成功。 我需要的是使用 logrus 格式化程序这样的格式 [错误]:日期时间 - 消息 我试过没有成功的是这个 l
我正在使用 golang logrus用于记录,我有一个包含所有常规功能的包装器,如 Info(..) , Infof(..) e.t.c 我想实现一个包装函数 Audit(..)用于记录到 sysl
使用包装的 logrus 函数/记录器时,记录器将使用记录器函数调用的文件名和行号作为所有日志行的前缀,例如: INFO[0000]logging.go:39 myfolder/logging.Inf
我有一个 golang 项目,我正在尝试使用 loggly 日志记录,正如他们在 https://www.loggly.com/blog/logging-to-loggly-from-go-with-
我将 Go 与 logrus 一起使用,但我发现时间字段的格式始终为本地时间。如何将 logrus 的时间更改为 UTC 时间? 谢谢 最佳答案 不直接支持时区设置,但您可以使用自定义 log.For
我正在使用 Logrus用于登录我的项目的包。 一切正常,但出于测试目的,我不需要显示 logrus 输出。 我正在查看 logrus.SetOuput 寻找答案。 所以基本上我希望将日志写入/dev
我想要一种方法,我们可以通过这种方法来计算否。 logrus 日志中发生的错误和警告的数量。 我想使用一个结构来记录错误和警告, type ErrorsAndWarnings struct{
这里发生了一些奇怪的事情,我无法弄清楚。 我正在为我的依赖项使用 glide,但有一个包让我很伤心。我添加了用于日志记录的 github.com/sirupsen/logrus 包,然后运行 gl
我是一名优秀的程序员,十分优秀!