问题标签 [bunyan]
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.
node.js - 将 Bunyan 应用于大型节点应用程序的推荐方式?
我正在开发一个具有多个模块的节点应用程序。我现在正在尝试正确设置日志记录(应该在一开始就这样做),并考虑使用 Bunyan。
最好有一个单独的模块,然后按照这个答案logger
中的建议,导出一个模块,然后由其他模块需要,或者直接在每个模块中定义一个新的 bunyan实例并相应地配置它?对于重用,我想象前者,但我不知道这是否会限制未来。logger
如果我定义了一个记录器,例如
然后所有使用它的模块也将使用 name 进行日志记录filter
,而每个模块使用更能代表自身的名称进行日志记录可能更有意义。
另外,我是否认为所有模块都应该将错误记录到同一个日志文件中,例如 systemErr.log(以便更好地概述),或者它们应该记录到自己的错误日志中,例如 module1Err.log、module2Err.log?
javascript - 在 node.js 应用程序中包装记录器的设计模式
我正在编写一个 node.js 应用程序并使用bunyan进行日志记录。我想做的是在我的应用程序的初始化中创建一个 bunyan 记录器的实例,从现在开始,我希望每个需要记录器的模块都将获得具有相同配置选项的相同实例。
现在我希望我的应用程序中的每个模块都将获得相同的记录器实例:
我应该在记录器模块中实现的推荐设计模式是什么?
node.js - bunyan - 流类型为“原始”的文件旋转
如果流是“旋转文件”类型,Bunyan 提供旋转日志功能。我想自定义写入日志的 JSON 输出。例如,我想要一些 bunyan 写入的默认值,但不是全部。看来,如果我希望排除/重命名默认输出的属性,我需要创建一个“原始”类型的流。如果我使用“原始”流,是否有必要管理我自己的日志轮换?
注意:我已经在使用序列化程序。但是序列化程序只是添加一个包含自定义对象的附加属性。
node.js - 错误:带有 Bunyan 旋转文件日志记录 (NodeJS) 的 ENOENT
我正在使用 Bunyan 模块进行 NodeJS 日志记录。当我尝试使用旋转文件类型时,它每次都会使我的应用程序崩溃并输出此错误:
错误:ENOENT,重命名“logs/info.log.3”
但是,它永远不会同时发生,所以我找不到任何逻辑......这就是我实例化我的记录器的方式:
这是我的 config.json:
谁能建议如何解决我的问题?提前致谢。
node.js - Restful API 中的 Bunyan logger.info 错误
我正在开发一个 Restful API,我正在使用 bunyan 记录所有重要步骤,包括请求。我在记录时遇到了两个问题:我的第一个问题是,当我记录它们时,我所有的对象,而不是像独立对象一样出现,而是msg
像字符串一样出现在字段中。
这是我记录请求的代码:
当我看到 request.log 文件时,它看起来像这样(我刚刚添加了一些选项卡以使其更舒适):
所以我的问题是“msg”字段,我想像其他字段一样查看“id”和“method”而不是字符串。即:
我该如何解决我的问题?
我的第二个问题是:当我在同一个文件中执行多个日志时,它会将 JSON 写入同一行,而不是新行,如下所示:
而不是这个:
而且我以后不能在同一行中处理这些对象,而且很难以这种方式阅读和维护。
有谁知道为什么会这样?
node.js - 使用 nodejs bunyan 正确记录错误?
我阅读了 Joyent 的事后调试文章,他们建议我们使用 bunyan。
他们讨论了日志信息的质量如何非常重要,并且可以帮助解决出现的错误。然后有一些外部博客网站展示了如何在他们的 Nodejs 应用程序中安装和运行 bunyan,这很好。
但我是新手,对如何有效使用日志记录一无所知(无论是特定于 bunyan 还是一般的日志记录实践)。我有三个相互关联的问题。
(1) 我应该使用 bunyan 来记录我的应用程序中发生的每一个动作吗?
IE,
...等等在我的应用程序中无处不在?
(2) 如果是这样,那么我不会得到不连贯的日志输出吗?例如,如果我们有 3 个并发用户调用/submit
,那么消息可能是:
是对的吗?如果我有一个堆栈跟踪,Bob
并且我试图在程序崩溃之前获得系统状态的先验知识,我将不得不以某种方式过滤掉其他所有人并按时间戳排序以获得一致的事件顺序Bob
?
(3) 我应该使用 bunyan 来记录堆栈跟踪吗?即,添加err.stack
到 bunyan 记录器:
...或者是否有其他一些标准做法来记录和报告错误(这基本上意味着保存堆栈跟踪?)?
javascript - bunyan log.child 正确的用例?
我一直在寻找bunyan
登录我的 nodejs 应用程序。我试过了,一切似乎都很好。我跳过了关于的部分log.child
,但现在我正在尝试了解如何使用它。我认为它的目的是允许我为日志条目指定一些特殊的标识符,以便我可以唯一地识别该日志如何与其他日志条目相关联。
如果是这样的话,我会设想自己log.child
在每个请求中使用:
这样,如果用户在 30 秒内两次Bob
POST /submit
,则会有一些上下文来区分日志文件中的两个不同调用。
也就是说,我会看到这样的东西(有上下文):
而不是这个(没有上下文):
因此,对于我的 Nodejs 应用程序中的所有路由,我将创建logChild
对象,然后使用logChild
记录该路由中的条目。
我是否正确理解并实施了用例log.child
?
node.js - 在 bunyan 日志记录中格式化输出
我正在试验节点 bunyan 模块。作为其中的一部分,我想知道一些关于bunyan的事实。
bunyan 是否有助于更改打印在 bunyan 日志上的内容的顺序。例如,默认情况下时间戳将在最后打印...有没有办法在开始时打印它?如果是的话请与我分享..
通过在应用程序中指定路径,将 Bunyan 日志记录到文件中。我们可以在属性文件中指定其他位置,而不是在应用程序中指定。如果是这样,请分享如何做到这一点...
node.js - 当logstash服务器断开连接时,nodejs中出现ECONNREFUSED错误
我在我的 nodejs 应用程序中使用node-bunyan和bunyan-logstash-tcp将日志发送到 logstash (1.4.2) 和 elasticsearch (1.4.2)。
每当 logstash 服务器断开连接或无法访问时,我的 nodejs 应用程序崩溃并出现以下错误
bunyan-logstash-tcp 实际上应该处理这个错误。谁能帮我解决这个nodejs崩溃问题。