问题标签 [logrus]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
go - 服务器中通常如何处理上下文取消错误?
由于取消请求,我收到了很多关于上下文取消错误的日志,通常如何处理?因为记录每个取消的请求听起来不合理,我想避免在任何可能出现的错误处进行显式检查!
我正在使用 logrus 进行日志记录,有没有办法跳过记录特定错误?在这种情况下,上下文取消错误。
go - runtime.Callers 根据运行的位置打印不同的程序计数器
我有下面的代码,它根据运行的位置打印不同的程序计数器值。
代码:
- 运行 using
go run或编译的二进制文件时,它会打印 (main.baris missing)
- 从 Visual Studio Code 运行代码时(仅在调试模式下,它工作正常)
- 在Playground中运行时,(
foo,bar, 两者都缺失)
我正在使用一个框架(logrus),它依赖于 PC 的顺序来执行一些操作(记录文件名)。
由于 PC 值会根据其运行位置不断变化,因此它在调试模式下工作,但在使用go run或编译的二进制文件运行时会失败。
知道是什么导致 PC 加载不同吗?任何正在启动的配置或优化?
go - 是否可以编写测试来测试记录的键的顺序
Logrus 按字母顺序记录键,这是我想要和需要的,但我想编写一个测试以确保它不会更改,我尝试添加挂钩,但我认为我无法使用自定义访问完整日志我添加的上下文我WithFields只能获取消息记录示例
我想测试message之前t在输出中出现的内容
logrus - 使用 logrus 作为标准库日志的 io.writer
知道为什么我没有从以下代码中看到任何日志记录。
为了查看日志记录,我需要在代码末尾添加一个睡眠。
知道为什么吗?
go - 使用 Logs 或 cobra.Command Println 获取用户反馈?
Spf13/cobra 命令提供了许多优雅的工具来向用户提供反馈。我有更多使用 Python/headless 服务的经验,其中标准是使用日志库,然后在必要时重定向到 stdio。
然而,我对眼镜蛇的探索越多,感觉这条路就走错了。相反,我觉得我应该通过 cobra 发送所有内容,并从该缓冲区中挑选应该记录的内容。
这里有任何惯用的指导吗?
go - 日志打印不同的输出
我的日志消息的输出有问题。我正在使用logrus。
我正在使用 VS Code 进行开发,当我调试代码时,日志输出为:
但是当我运行应用程序可执行文件或使用go run main.go时,输出是:
我想要第一个输出。
怎么了?
编辑:
我们需要按照logrus github中的说明设置格式化程序。
http - 记录 HTTP 端点和有效负载 GRPC
我想在 grpc 上使用 Logrus 记录我的有效负载。我已经使用 grpc_middleware 制作了它,但日志格式不是我想要的。我*logrus.Logger用作logrus.NewEntry()代码的参数是这样的:
上述代码的日志输出如下:
我希望它是这样的 JSON 格式,显示 http url:
我还想记录它已经在 proto 中定义的 http 端点
其实我希望它是这样的:
go - 围绕 logrus 创建一个包装器接口
我正在尝试围绕logrus. 为此,我定义了以下内容
现在在一个单独的方法中,我有以下
但是我收到以下编译错误
从错误中可以看出,它withFields是引发错误的方法,特别是返回类型。但是*github.com/sirupsen/logrus.Entry接口中的所有方法testconcepts/util.Logger
我不确定它为什么会抛出这个编译错误。
go - 指向特定日志级别的 Logrus 记录器指针
我正在使用 MQTT paho 库,它有自己的记录器接口,由 logrus 记录器实现,paho 库有多个级别:ERROR、CRITICAL 等。我试图做这样的事情:
但这不会记录,因为你不能有一个名为 level 的字段,如果你不添加 level,它总是进入 info 级别,因为 entry.Print 是在里面做 log.Info 的实现,有没有办法传递一个指针到具有相应日志级别的 logrus 记录器,而无需围绕它创建新的包装器。
我知道它可以通过新包来完成,该包将实现 mqtt.Logger,其中的函数将在内部调用 log.Error。但我觉得应该有更好的方法来做到这一点。