问题标签 [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.

0 投票
1 回答
53 浏览

javascript - 在 NodeJS 中重用变量

我正在尝试使用(记录)函数的返回对象而不使用多个变量

nodeJS遵循/Javascript最佳实践如何最好地做到这一点。

我是否必须多次声明这个变量,因为我通过引用知道它。

0 投票
2 回答
2707 浏览

node.js - 更改不同级别的bunyan日志颜色

使用 Bunyan 时,我所有的日志级别都使用相同的青色,如下所示:

在此处输入图像描述

这是我们正在使用的 Bunyan 配置:

我的问题是 - 我怎样才能让 Bunyan 使用红色或洋红色来记录错误信息/堆栈跟踪?问题是红色字符中的“错误”不足以引起我的注意——我希望整个堆栈都显示为红色或洋红色。

这是 Bunyan 自述文件: https ://github.com/trentm/node-bunyan

我只看到提到过一次“颜色”。

我们可以做这样的事情吗?

0 投票
1 回答
547 浏览

node.js - 在所有日志中打印 bunyan 中间件 reqId

我正在使用 node、express 和 bunyan 中间件开发 RESTful 服务。Bunyan 中间件正在生成一个 UUID,同样可以在 req.reqId 获得。因此,当通过 req.log.info("log message") 进行日志记录时,reqId 将打印在日志中。但我面临的问题是,有许多内部助手编写没有 req 的上下文。一种解决方案是将 req 对象传递给每个函数,但这对我来说似乎是一种开销。

感谢任何解决方案。

0 投票
1 回答
708 浏览

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.

0 投票
0 回答
128 浏览

node.js - 捕获异步调用的错误

然后在添加流时,我尝试捕获发生的错误:

我确实收到了TRY activated消息,但应用程序仍然崩溃。这让我想到异步模型阻止了try-catch在这里工作。

我添加了一个回调addStream()如下:

但这也无济于事。

也尝试过logger.on('error', (err, stream) => { console.log(err) });但也不成功。

我收到一个getaddrinfo ENOTFOUND错误:

我可以在当地抓到吗?Fe 不添加uncaughtException到我process的等...

0 投票
2 回答
1495 浏览

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

0 投票
1 回答
437 浏览

javascript - 防止 Sequelize 记录器包含数据库凭据

我注意到在 Sequelize 版本4.4.2中,创建模型时日志信息包括数据库凭据。

如果您希望在生产环境中使用查询信息的日志来审计查询或调试错误,这是有问题的。这是我的续集设置:

编辑:

它似乎与我这样做的方式附加自定义记录器直接相关。它将一个配置对象传递给记录器,其中包括 sequelize 配置,其中还包括数据库凭据。依赖 console.log 不会导致问题。

0 投票
6 回答
17111 浏览

node.js - 我可以更改winston 中日志数据的颜色吗?

我碰巧使用 bunyan 来记录数据。我希望以适当的颜色打印日志,例如红色错误、调试黄色 .. 等;不幸的是,我无论如何都找不到这样做。现在我想知道温斯顿是否可能。我可以更改 winston 中日志数据的颜色吗?

这是我执行的代码。

此处的输出屏幕截图

工作代码的输出在这里

0 投票
1 回答
200 浏览

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 对我来说太不透明了。

0 投票
0 回答
172 浏览

docker - 如何清理来自 ssh 连接的多行 Bunyan 日志输出?

ssh -t -i ~/work/keys/somekey.pem ec2-user@x.x.x.x 'docker logs --follow --tail 50 -t taggoeshere' | cut -c 32- | bunyan -o short

这适用于单行 docker 日志输出:

12:54:49.038 INFO xxxxxxxxxxx: Failed message, sending to S3 (event_id=no-event-id)

但是一旦它是多行的,它就会变得丑陋。任何人有一个方便的技巧来清理这个?

输出