目前,我有一个 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/