首页 > 解决方案 > PM2 记录到带有时间戳的文件

问题描述

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

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

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

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

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

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

标签: javascriptnode.jspm2

解决方案


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/

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


推荐阅读