问题标签 [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 - Golang logrus - 如何进行集中配置?
我在 Go 应用程序中使用 logrus。我相信这个问题也适用于任何其他日志记录包(不提供基于外部文件的配置)。
logrus 提供了设置各种配置的功能,例如 SetOutput、SetLevel 等。
与我需要从多个源文件/包进行日志记录的任何其他应用程序一样,您似乎需要使用 logrus 在每个文件中设置这些选项。
有没有办法在中心位置的某个地方设置这些选项,以便在整个应用程序中共享。这样,如果我必须更改日志记录级别,我可以在一个地方进行并应用于应用程序的所有组件。
go - 写入现有文件
这是代码:
它可以工作,但是如果再次运行程序并且已经存在同名文件,则不会写入它,没有错误,没有写入日志,仅此而已。在我看来,这个 os.ModePerm 标志有些东西。
该问题仅在linux上重复。
go - 将弹性搜索与 Logrus 集成(golang 日志记录)
我logrus
用来记录我的 golang 应用程序。但是,我还想将它与 Elastic Search 集成,这样当我创建 logrus 日志条目时,所有日志也会刷新到 Elastic Search。目前所有日志都在一个文件中创建,如下面的代码片段所示。我如何与弹性搜索集成?
我试过elogrus
添加一个钩子,但我不知道如何使用它。这是尝试创建弹性搜索客户端的方法。我如何将它与 logrus 实例集成?
早些时候,我使用过诸如Winston
设置弹性搜索日志记录非常容易的模块,但不知何故,我发现很少有关于如何将 Golang 日志记录与弹性搜索集成的 golang 文档
go - 将 context.Context 传递给所有相关方法,golang
我阅读了有关删除 ThreadLocal 的所有决定,我可以理解。似乎传递request.Context()
typecontext.Context
赋予了管理范围服务的能力。
我正在使用logrus
日志记录并希望记录一个requestId
从 midlleware 生成的 udidgin
我知道我可以做这样的事情
并且绕过条目,甚至将条目存储在上下文中,无论如何都可以,但是......我也有一个Redis
和MongoDb
客户端,singletons
我用我自己的包包装它们,以方便记录任何传出的 I\O 请求。
因为它们是单例,所以我不能context.Context
将它传递给构造函数,但我必须将它传递给每个方法,比如GetKey
SetKet
等等。
在 Singleton 服务中使用 context \ request id 日志记录的任何常见模式?
go - Logrus 转义 & 字符
我正在使用 Logrus,但&
在其日志中显示字符时遇到了问题:
这打印value\u0026value
即十六进制值&
而不是&
自身
任何人都知道如何解决这个问题?
如果它可能有帮助,这里是记录器的初始化方式:
go - 处理程序提供服务后,如何从请求对象中取回记录器对象?
我正在尝试学习如何在 Go 中使用中间件。我成功地将带有请求上下文的记录器对象发送到处理程序函数。但是,一旦处理了请求并且记录器对象填充了来自处理函数的数据/错误,我希望能够访问修改后的对象。但根据我目前的实现,我得到一个 nil 对象。
收到的回复:
期待处理函数中添加的“错误”字段。
我知道在这种情况下存在一些概念错误,但无法理解。
所以基本上我想记录所有内容一次,而不是多次,因为只需要在中间件中获取最终字段和所有内容。
go - 是否可以使用 logrus 日志记录将 'msg' 交换为 'message'
因此,当使用 Logrus 时,我需要日志输出具有message
密钥而不是msg
密钥,但是当我使用下面的代码时,我得到了两者,但msg
都是空的,如何将 logrus 配置为使用“消息”而不是“消息”?
这是留空时的日志输出.Info()
//.Info()
日志到msg
键
我想要的是能够使用.Info(message)
和拥有
是否可以更改 .Info() 等的默认日志记录键?
go - Golang - 将恐慌记录到多个记录器和文件
所以我有一个 go 应用程序,它有 3 个不同的日志输出文件,每个文件都有自己的记录器。当应用程序发生恐慌时,恐慌跟踪将始终写入最后一个要打开的记录器,即使恐慌的来源与此特定日志文件的域无关。
发生这种情况是因为为了编写恐慌,我将 stderr 输出重定向到记录器,最后一个被重定向到的记录器就是将要使用的记录器
有没有办法让恐慌总是被写入特定的文件?或以某种方式将其重定向到所有文件?
谢谢
go - golang如何自动将logrus错误写入supervisord stderr_logfile
我正在使用 supervisord 来运行我的 golang 应用程序。我的supervisord conf看起来像
我的 logrus 设置看起来:
但是我发现两者都登录到我的错误日志中/var/log/app_error.log
如何自动将信息记录到我的应用程序日志/var/log/app.log
并将错误记录到错误日志var/log/app_error.log
。
谢谢
docker - 通过 google-fluentd 使来自 Docker 容器的 JSON 日志字段在 GCP 日志中可用
首先让我解释一下设置/系统:
我有一台通过 GCP Compute Engine 运行的虚拟 Ubuntu 18.04 机器。我遵循GCP文档并通过apt-get
.
在这台机器上,我有一个 golang 网络服务,在 Docker 容器中运行,它使用Logrus输出如下所示的日志:
为了将这些日志从机器/容器获取到 GCP 日志,我创建了一个新的 fluentd 配置文件/etc/google-fluentd/config.d/docker.conf
,如fluentd 文档中所述:
以及 Docker 守护程序将此容器的日志发送到 fluentd,如Docker 文档中所述:docker run --log-driver=fluentd ...
我面临的限制是日志确实到达了 GCP 日志查看器,但我的服务字段没有正确解析,因此我无法按严重性等进行排序。到达 GCP 的日志如下所示:
我需要采取哪些额外步骤才能让 GCP 日志查看器理解日志?我认为 fluentd 的过滤器/解析器配置足以实现这一点,尤其是关于的部分。