问题标签 [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.
javascript - 在 NodeJS 中重用变量
我正在尝试使用(记录)函数的返回对象而不使用多个变量
nodeJS
遵循/Javascript
最佳实践如何最好地做到这一点。
我是否必须多次声明这个变量,因为我通过引用知道它。
node.js - 更改不同级别的bunyan日志颜色
使用 Bunyan 时,我所有的日志级别都使用相同的青色,如下所示:
这是我们正在使用的 Bunyan 配置:
我的问题是 - 我怎样才能让 Bunyan 使用红色或洋红色来记录错误信息/堆栈跟踪?问题是红色字符中的“错误”不足以引起我的注意——我希望整个堆栈都显示为红色或洋红色。
这是 Bunyan 自述文件: https ://github.com/trentm/node-bunyan
我只看到提到过一次“颜色”。
我们可以做这样的事情吗?
node.js - 在所有日志中打印 bunyan 中间件 reqId
我正在使用 node、express 和 bunyan 中间件开发 RESTful 服务。Bunyan 中间件正在生成一个 UUID,同样可以在 req.reqId 获得。因此,当通过 req.log.info("log message") 进行日志记录时,reqId 将打印在日志中。但我面临的问题是,有许多内部助手编写没有 req 的上下文。一种解决方案是将 req 对象传递给每个函数,但这对我来说似乎是一种开销。
感谢任何解决方案。
node.js - Wrapper over bunyan logging library
I know it's a very abstract question, but I just don't know where/how to start.
I am using bunyan as a logging library in my app. This is a sample syntax for logging something:
I want to create some kind of a wrapper so that every time log.<something>()
is called, it will execute the functionality from my module. Specifically, I want to do a curl
request with the object produced by log.<something>()
.
I was looking into messina and gelf-stream which are wrappers around bunyan
but I didn't really spot any specific code that handles logging events or anything that will give me an example of how to accomplish my idea.
I was thinking of adding event emitters to bunyan
that I can listen for in my module, but that would require me to my fork of the lib, and I don't wanna do that. So, now I'm out of ideas.
node.js - 捕获异步调用的错误
然后在添加流时,我尝试捕获发生的错误:
我确实收到了TRY activated
消息,但应用程序仍然崩溃。这让我想到异步模型阻止了try-catch
在这里工作。
我添加了一个回调addStream()
如下:
但这也无济于事。
也尝试过logger.on('error', (err, stream) => { console.log(err) });
但也不成功。
我收到一个getaddrinfo ENOTFOUND
错误:
我可以在当地抓到吗?Fe 不添加uncaughtException
到我process
的等...
javascript - 单独的信息和错误日志 bunyan
正如我在博客中看到的许多日志,我发现 bunyan 适合进行日志记录,但它存在无法根据其级别记录到文件的问题。
下面是我正在关注的代码结构
o/p:info.log:
{"name":"ShotPitch", "pid":7621,"level":30,"msg":"Hello World","time":"2017-09-03T18:29:04.181Z","v" :0}
{"name":"ShotPitch", "pid":7621,"level":50,"msg":"Hello World","time":"2017-09-03T18:29:04.181Z","v" :0}
o/p:error.log:
{"name":"ShotPitch", "pid":7621,"level":50,"msg":"Hello World","time":"2017-09-03T18:29:04.181Z","v" :0}
结论:
info.log 显示信息和错误日志
error.log 仅显示错误日志
我只希望 info.log 中的信息日志但无法做到。有没有人可以帮助?另外,如果告诉我如何更改为级别:“信息”而不是级别:30
javascript - 防止 Sequelize 记录器包含数据库凭据
我注意到在 Sequelize 版本4.4.2
中,创建模型时日志信息包括数据库凭据。
如果您希望在生产环境中使用查询信息的日志来审计查询或调试错误,这是有问题的。这是我的续集设置:
编辑:
它似乎与我这样做的方式附加自定义记录器直接相关。它将一个配置对象传递给记录器,其中包括 sequelize 配置,其中还包括数据库凭据。依赖 console.log 不会导致问题。
node.js - 在 Azure 上,bunyan 在几秒钟后停止记录
我有一个 NodeJS 网络应用程序,并且通过 bunyan 添加了日志记录。在我的桌面上完美运行。在 Azure 上,它可以完美运行 1-10 秒,然后不会记录任何其他内容。该应用程序将继续运行并正常运行。我无法弄清楚为什么会这样。记录到纯本地文件,而不是 Blob 或 Azure 存储。
日志类型为rotating-file,设置为每天轮换1次,保留3天。Web 应用程序的 Always On 和 ARR Affinity 设置为 On,以及应用程序日志记录(文件系统),尽管我不确定这里的因素。实例计数为 1 且未启用自动缩放。节点版本为 8.7.0。在控制台中:
坦率地说,我不知道那是想告诉我什么。不知何故,我们已经使用了 113% 的东西,这是不可能的。我们使用了负数,这是不可能的。仍然有 99G/100G 可用,所以我们真的只使用了 1%。那么这是一个“磁盘已满”的问题吗?我不知道。我在任何地方都没有看到这样的错误消息。
之前,该应用程序使用的是 console.log()。我们添加了拦截console.X的代码并先写入文件,然后调用普通函数。发生了同样的事情 - 它会工作几秒钟,然后不会记录任何其他内容。我以为这是因为 Azure 的某些组件也拦截了控制台调用,以便将它们重定向到 XXX-stdout.txt,而我们俩都这样做以某种方式破坏了它。现在看来,原因可能是别的。
有谁知道为什么会这样?
11/12 - 从头开始创建一个应用程序来记录心跳一次/秒,它运行良好。也工作一次/分钟。我将不得不从失败的项目中添加一些片段,直到它中断。
11/13 - 我不认为记录器配置有什么特别之处。
仍在努力用比整个项目少的东西来复制它。
11/14 - 我很满意,在 bunyan 日志记录停止后,应用程序仍在继续调用它。“调用 log2”console.logs 在 Azure 日志流中可见,但在 30 秒之后,不会再向 bunyan 日志添加任何内容。我从来没有看到记录的“错误”。这仍然是在项目的上下文中,我仍然无法单独复制它。
11/14 - 从“旋转文件”更改为“文件”,行为相同。启用 xxx 日志记录并打印“写入日志记录”消息但不添加到文件中。文件流发生了什么事?添加代码以在我们从流中捕获“错误”的地方捕获关闭/完成/软木塞,但没有捕获任何这些事件。
11/15 - 我可以从 pids 和日志消息中看到 Azure 正在重新启动我的应用程序。我不知道为什么,logging-errors.txt 中没有任何内容,stderr 上没有任何可怕的东西。我也不知道为什么第二次运行没有记录到文件,而第一次运行。但是,如果我能弄清楚它为什么会重新启动并阻止它,那么我就不会关心第二个问题。Azure 对我来说太不透明了。