问题标签 [winston]

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 投票
2 回答
10696 浏览

node.js - 温斯顿 http 传输示例

我需要一个工作示例,它使用 http 传输将日志发布到服务器上。我可以使用文件传输和控制台传输在文件和控制台上记录消息。我也尝试为http传输做同样的事情,winston clien 的源代码看起来像这样:

在运行此代码时,我收到如下错误:

由于我是 node.js 的新手,我不知道如何处理它。我尝试在谷歌上搜索解决方案,但没有得到任何解决方案。请帮助我。

谢谢

0 投票
0 回答
160 浏览

casperjs - CasperJS 的日志框架

有没有办法使用winstonbunyan与 CasperJS 一起使用?我无法正确加载。

我尝试了Can't require Underscore with CasperJS中描述的代理方法,但这也不起作用。

0 投票
1 回答
2815 浏览

node.js - 在 Express 节点中处理异常的任何其他方法?

下面是我用来处理/记录 Express 应用程序中所有可能的异常的方法。还有什么办法吗?

错误处理是一个微妙的问题,尤其是在处理 Express 时。让我们从最简单的场景开始。想象一下我们的应用程序如下:

从控制台启动应用程序,我们得到以下信息:

请注意,上述情况是一个未捕获异常的示例,因为我们没有因错误而执行编写的代码。要处理上述错误,我们可以执行以下操作:

如果我们现在启动我们得到的应用程序:

请注意!!!"process.on('uncaughtException'..." 将被弃用!!!

为了在弃用发生时做好准备,我们最好使用我们最喜欢的记录器的异常处理程序,它是强大且超受欢迎的winston。我们的应用程序变为:

它的输出如下:

伟大的winston输出了很多有意义的信息来帮助我们管理错误,看看pid参数或者内存信息(rss,heapTotal,...)。winston 所做的另一件好事是退出应用程序,这在未捕获异常的情况下非常有用。

让我们的应用程序成为 Express Server 我们的应用程序变成:

启动服务器并询问http://localhost:3000我们在浏览器上的浏览器:

并且它仍在运行的应用程序在 Web 服务器上出现错误时不是一个好主意。

温斯顿异常处理程序到底在哪里?

Winston 没有处理上述错误,因为它已由 Express 处理,这是因为该错误在以下 Express 路由处理程序的范围内:

我们想要实现的是使用 winston 记录这个错误并退出应用程序,但是为了达到我们的目标,我们需要在 Express “内部”发生错误时执行我们的代码。为此,我们将使用 Express 错误中间件,如下所示:

如果我们向浏览器询问,http://localhost:3000我们会得到应用程序退出,并且在控制台上我们会得到以下由 winston 抛出的信息:

不幸的是,在这种情况下,我们无法获得当 winston 直接处理异常时输出的所有信息,但在列表中,我们也可以控制 Express 处理的错误。

但是我想要winston直接处理异常时给出的所有信息

好的,让我们试试吧!我们必须想办法让 Express 失去对 Exception 的控制。我们在上面说过,当这些异常发生在路由处理程序的范围内时,Express 会处理这些异常:

让我们检查一下当错误发生在 Express 路由处理程序中包含的异步函数中时会发生什么:

启动应用程序:

并要求http://localhost:3000我们观察应用程序退出并在控制台上:

嘿,Express 没有处理上述错误,但 winston 处理了(我们在输出中有内存详细信息)。这是因为错误没有发生在 Express 范围内,而是发生在异步函数范围内。因此,我们需要将 Express 范围内的错误转换为异步函数范围内的错误。我们可以做到这一点,事实上我们已经能够运行我们的代码来管理 Express 错误。我们的策略是在 Express 错误中间件(其中有我们处理 Express 错误的代码)和 setTimeout 中插入一个异步 setTimeout(1ms 延迟),以将到达中间件的相同错误作为参数抛出。

请求http://localhost:3000我们在浏览器上得到响应“Arrrghhh !!!...”,应用程序退出并在我们获得的控制台上:

我们发现所有错误都通过winston记录/管理:应用程序退出并且错误日志包含许多有助于解决问题的有用信息。

0 投票
1 回答
176 浏览

node.js - 使用日志库时日志文件中没有条目

我不知道这是一个永远解决的问题还是我尝试过的库,但也许有人可以在这里提供帮助。

我通过我的应用程序(express)使用 console.log() 来编写日志。现在我已经切换到一个功能更丰富的日志库,即 Winston.js。像这样配置winston:

并用winston.info/winston.error替换了我的console.log()条目,你命名它。在我使用 node app.js 启动我的应用程序后,一切都按预期进行。所以我试图永远运行它,因为在生产中我是这样运行的。

现在我遇到了一个问题,即永远使用just forever start app.js的整个日志文件为空。那里没有一个日志条目。我用 log4js 替换了winston,但是用永远启动它时日志文件仍然是空的。

我现在有什么遗漏吗?如果有,问题出在哪里?

此致, cschaeffler

0 投票
1 回答
730 浏览

winston - 温斯顿记录器错误记录无法正常工作

帮我摆脱困境

这是我的 console.log 的输出

这是我的 logger.error 的输出

0 投票
1 回答
2654 浏览

node.js - 使用 winston 使用 Express Node.js 进行日志记录

我在我的 express/nodejs Web 应用程序中配置了这样的日志记录。日志消息中的时间戳以 GMT 为单位。有没有办法获取当地时间?

这是我得到的示例日志

0 投票
1 回答
8279 浏览

node.js - Nodejs 与 PM2 和 Winston 合并日志

我只想将所有信息记录在一个文件中。我正在使用 pm2“0.12.1”和“winston”:“0.8.3”。

这是我的温斯顿代码

和我的一部分生态系统.json

这对我不起作用。我不明白为什么 pm2 仍然创建两个文件,一个用于输出,一个用于错误。另外我想知道是否可以将文件放在生产中的另一个目录中。

谢谢

0 投票
1 回答
1072 浏览

node.js - 使用调试库登录 node.js

我目前正在使用调试库

有没有办法可以将调试库中的输出文本保存到 Winston 等日志文件中。

例如……伪代码……

所以.. 'hello world' 应该在 test.log 中

0 投票
1 回答
1173 浏览

node.js - winston logger 文件权限异常

我使用 node.js 编写了一个 API,其中使用了“ Winston logger”。因为我提到的要写入所有日志的文件的所有者为“ ROOT”,所以我的应用程序退出了。当我将文件所有者更改为“ my user”时,我的应用程序有效。所以我的结论是文件权限是问题所在。

我的温斯顿代码:

温斯顿没有抛出任何异常,只是我的应用程序退出了。是否可以检查文件的所有者,或者温斯顿有任何选择来解决这个问题。我google了很多,但我找不到解决方案。帮我解决这个问题。提前致谢。

0 投票
1 回答
612 浏览

node.js - SNS 可以发送加密邮件吗?

我正在尝试使用 node.js、日志记录库 winston 和 AWS 的 SNS 设置异常报告机制。基本思想是,当 node.js 崩溃时,winston 会将堆栈跟踪发布到 SNS,然后 SNS 将通过 gmail 电子邮件地址给我发送电子邮件。我的问题是关于加密的:SNS 是否以明文形式发送电子邮件?出于显而易见的原因,我希望我的异常和堆栈跟踪被窥探者混淆。