如何让forever在Nodejs中不打印日志?

如何让forever在Nodejs中不打印日志?

并没有加 -l 但还是在 /root/.forever 下生成了大量的日志

有没有方法让它不打印日志?

6 回复

当然可以。下面是针对你提到的标题和内容所撰写的回答:


标题:如何让forever在Node.js中不打印日志?

内容:

在使用 forever 监控 Node.js 应用程序时,默认情况下它会在 /root/.forever 目录下生成大量的日志文件。如果你希望避免这种情况,可以通过一些配置来调整 forever 的行为,使其不生成这些日志文件。

解决方案

方法1: 使用 --logFile 参数

你可以通过 --logFile 参数指定一个空的日志文件路径,这样 forever 将不会生成任何实际的日志文件。

forever start --logFile /dev/null your-app.js

这里 /dev/null 是一个特殊的文件路径,在类 Unix 系统中表示丢弃所有写入的数据,因此不会有任何日志文件被创建。

方法2: 修改 forever 配置文件

另一种方法是修改 forever 的全局配置文件,设置日志输出为无。这需要编辑 forever 的配置文件,通常位于用户主目录下的 .foreverrc 文件中。但是这种方法比较复杂且不太常用,因为直接在启动命令中指定日志文件更为简单直接。

方法3: 使用环境变量

你还可以通过设置环境变量 FOREVER_LOGFILE 来控制日志文件的位置。如果将其设置为 /dev/null,则不会生成日志文件。

export FOREVER_LOGFILE=/dev/null
forever start your-app.js

这种方法适用于临时或一次性操作。对于长期运行的应用程序,建议使用第一种方法。

示例代码

以下是一个完整的示例,展示了如何使用 --logFile 参数启动你的 Node.js 应用程序:

# 启动应用并禁止生成日志文件
forever start --logFile /dev/null your-app.js

通过上述方法,你可以有效地阻止 forever 在监控 Node.js 应用程序时生成大量日志文件,从而保持系统整洁。


forever start -o /dev/null -e /dev/null myserver.js

forever start -o /dev/null -e /dev/null myserver.js

非常感谢
forever -s start script.js 也可以

有日志不是更好找到问题吗

要让 forever 在 Node.js 中不生成或打印日志,可以通过修改 forever 的配置来实现。forever 默认会在 /root/.forever 目录下生成日志文件。如果你希望完全不生成这些日志文件,可以使用 --logFile 参数将其指向一个空设备文件(在类 Unix 系统中通常是 /dev/null)。

以下是具体步骤和示例代码:

  1. 安装 forever

    如果你还没有安装 forever,可以通过 npm 安装它:

    npm install -g forever
    
  2. 运行脚本并禁用日志

    使用 forever start 命令启动你的 Node.js 应用,并通过 --logFile 参数指定为 /dev/null 来禁用日志输出:

    forever start --logFile /dev/null your-script.js
    
  3. 示例

    假设你有一个简单的 Node.js 脚本 app.js,你可以这样运行它:

    forever start --logFile /dev/null app.js
    
  4. 一次性运行

    如果你希望仅在一次运行中禁止日志记录,也可以直接在命令行中使用:

    forever start --logFile /dev/null app.js
    

解释

  • --logFile /dev/null: 这个参数告诉 forever 将日志写入 /dev/null,这是一个特殊的文件,任何写入它的数据都会被丢弃。

通过上述方法,你可以有效地阻止 forever 在 Node.js 应用运行时生成日志文件。这样可以减少磁盘 I/O 操作,提高应用性能。

回到顶部