问题标签 [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.
node.js - 温斯顿 http 传输示例
我需要一个工作示例,它使用 http 传输将日志发布到服务器上。我可以使用文件传输和控制台传输在文件和控制台上记录消息。我也尝试为http传输做同样的事情,winston clien 的源代码看起来像这样:
在运行此代码时,我收到如下错误:
由于我是 node.js 的新手,我不知道如何处理它。我尝试在谷歌上搜索解决方案,但没有得到任何解决方案。请帮助我。
谢谢
casperjs - CasperJS 的日志框架
有没有办法使用winston
或bunyan
与 CasperJS 一起使用?我无法正确加载。
我尝试了Can't require Underscore with CasperJS中描述的代理方法,但这也不起作用。
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记录/管理:应用程序退出并且错误日志包含许多有助于解决问题的有用信息。
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
winston - 温斯顿记录器错误记录无法正常工作
帮我摆脱困境
这是我的 console.log 的输出
这是我的 logger.error 的输出
node.js - 使用 winston 使用 Express Node.js 进行日志记录
我在我的 express/nodejs Web 应用程序中配置了这样的日志记录。日志消息中的时间戳以 GMT 为单位。有没有办法获取当地时间?
这是我得到的示例日志
node.js - Nodejs 与 PM2 和 Winston 合并日志
我只想将所有信息记录在一个文件中。我正在使用 pm2“0.12.1”和“winston”:“0.8.3”。
这是我的温斯顿代码
和我的一部分生态系统.json
这对我不起作用。我不明白为什么 pm2 仍然创建两个文件,一个用于输出,一个用于错误。另外我想知道是否可以将文件放在生产中的另一个目录中。
谢谢
node.js - winston logger 文件权限异常
我使用 node.js 编写了一个 API,其中使用了“ Winston logger
”。因为我提到的要写入所有日志的文件的所有者为“ ROOT
”,所以我的应用程序退出了。当我将文件所有者更改为“ my user
”时,我的应用程序有效。所以我的结论是文件权限是问题所在。
我的温斯顿代码:
温斯顿没有抛出任何异常,只是我的应用程序退出了。是否可以检查文件的所有者,或者温斯顿有任何选择来解决这个问题。我google了很多,但我找不到解决方案。帮我解决这个问题。提前致谢。
node.js - SNS 可以发送加密邮件吗?
我正在尝试使用 node.js、日志记录库 winston 和 AWS 的 SNS 设置异常报告机制。基本思想是,当 node.js 崩溃时,winston 会将堆栈跟踪发布到 SNS,然后 SNS 将通过 gmail 电子邮件地址给我发送电子邮件。我的问题是关于加密的:SNS 是否以明文形式发送电子邮件?出于显而易见的原因,我希望我的异常和堆栈跟踪被窥探者混淆。