- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在使用 github.com/sirupsen/logrus 和 github.com/pkg/errors。当我提交一个从 pkg/errors 包装或创建的错误时,我在注销中看到的只是错误消息。我想查看堆栈跟踪。
从本期,https://github.com/sirupsen/logrus/issues/506 ,我推断 logrus 有一些处理 pkg/errors 的 native 方法。
我该怎么做?
câu trả lời hay nhất
对您的 Logrus 问题的评论是不正确的(顺便说一下,似乎来自与 Logrus 没有任何关系且对 Logrus 没有做出任何贡献的人,所以实际上不是来自“Logrus 团队”)。
很容易在pkg/errors
错误中提取堆栈跟踪,as documented :
type stackTracer interface {
StackTrace() errors.StackTrace
}
这意味着使用 logrus 记录堆栈跟踪的最简单方法就是:
if stackErr, ok := err.(stackTracer); ok {
log.WithField("stacktrace", fmt.Sprintf("%+v", stackErr.StackTrace()))
}
截至今天,当my a pull request of mine was merged with pkg/errors
,如果您使用的是 JSON 日志记录,现在就更容易了:
if stackErr, ok := err.(stackTracer); ok {
log.WithField("stacktrace", stackErr.StackTrace())
}
这将生成类似于“%+v”的日志格式,但没有换行符或制表符,每个字符串一个日志条目,以便于编码到 JSON 数组中。
当然,这两个选项都会强制您使用 pkg/errors
定义的格式,这并不总是理想的。因此,您可以遍历堆栈跟踪,并生成您自己的格式,可能生成可轻松编码为 JSON 的格式。
if err, ok := err.(stackTracer); ok {
for _, f := range err.StackTrace() {
fmt.Printf("%+s:%d\n", f, f) // Or your own formatting
}
}
无需打印每一帧,您可以将其强制转换为您喜欢的任何格式。
关于go - 如何让 logrus 打印 pkg/errors 堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54369295/
我正在尝试转换 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
Tôi là một lập trình viên xuất sắc, rất giỏi!