javascript - PM2 记录到带有时间戳的文件

标签 javascript node.js pm2

目前,我有一个 NodeJS 程序,它将大量信息记录到控制台,就像许多 NodeJS 程序一样。我想知道是否有一种方法可以为登录到控制台的所有内容提供输出日志,并使用以其创建的时间戳命名的文件。

我一直在网上研究保存日志的方法,到目前为止我已经能够找到重定向,例如node app.js>logs/bot.log。虽然这很好用,但我需要 pm2 以便任何崩溃都能重新启动,但我还没有找到如何使 pm2 具有带时间戳的日志。我发现 pm2 可以有日志,但我无法弄清楚如何根据我的需要修复它们。

不需要太多代码来显示这一点,但我只需要将控制台中的所有消息记录到文件中。

console.log("Sometimes, I dream about cheese...");

理想情况下,我希望将其以及之前的所有其他日志保存到 logs 文件夹内名为 bot.log 的文件中 (/logs/bot.log)。

我希望我能够获得帮助,以保存带有时间戳的日志作为已打印到控制台的所有内容的名称,从而虚拟地制作控制台的副本,以便我以后可以访问以进行调试等.感谢您的帮助!

最佳答案

PM2 确实记录到文件。

您可以使用以下命令查看特定或所有应用程序的日志:

# Display option for pm2 logs command
pm2 logs -h

# Display all apps logs
pm2 logs

# Display only `api` application logs
pm2 logs api

# Display X lines of api log file
pm2 logs big-api --lines 1000

您还可以使用

指定输出和错误日志的路径
pm2 start yourapp.js --output /logs/bot.log --error /logs/boterror.log

还有更多内容,包括用于管理大型日志文件的日志轮换:http://pm2.keymetrics.io/docs/usage/log-management/

如果您需要更多帮助,可以更具体一点

关于javascript - PM2 记录到带有时间戳的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57069020/

相关文章:

javascript - 调试对象上的 console.log

node.js - "pm2 save"的目的是什么?

kubernetes - 如果有新部署进入,kubernetes 是否会向 pm2 发送 kill 信号?

node.js - mongoError : Topology was destroyed

javascript - 如何使乒乓球运动

javascript - 如何以编程方式绘制具有自动图松弛的非线性书写系统(例如在 d3.js 中)?

php - 不要使用 JavaScript 提交 MYSQL 数据库中的现有值

javascript - 如何生成 1 - 10 之间的随机数,除了随机数不能是 3

node.js - 使用nodejs将文件夹内容复制到另一个文件夹

node.js - 使用带有 AWS KMS 的 Nodejs 在 s3 中加密和解密文件