Pm2更改日志文件位置

Jee*_*eet 9 node.js pm2 npm-start

我有几个关于pm2的问题

  • 由于服务器的c驱动器访问限制,如何将文件位置server-error-0.logserver-out-0.log文件位置更改c:\users\user\.pm2\logs为其他驱动器.
  • 我可以在数据库而不是日志文件中记录错误和信息吗?我是否需要为此编写单独的模块,或者有任何方法可以实现此目的吗?

sha*_*ncs 18

如何更改...日志文件位置的位置?

若要更改PM2的日志文件位置,有2个解决方案:执行PM2命令时定义日志路径作为参数(-l,-o,-e),或从配置文件开始PM2.

对于参数解决方案,这是一个例子:

pm2 start app.js -o ./out.log -e ./err.log
Run Code Online (Sandbox Code Playgroud)

如果您不想在每次执行pm2时定义日志路径,您可以生成配置文件,定义error_fileout_file,并从中启动pm2:

  1. 生成配置文件:pm2 ecosystem simple.这将生成一个文件ecosystem.config.js,其中包含以下内容:

    module.exports = {
      apps : [{
        name   : "app1",
        script : "./app.js"
      }]
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在文件中定义error_file(用于错误日志)和out_file(用于信息日志),例如:

    module.exports = {
      apps : [{
        name   : "app1",
        script : "./app.js",
        error_file : "./err.log",
        out_file : "./out.log"
      }]
    }
    
    Run Code Online (Sandbox Code Playgroud)
  3. 从配置文件启动该过程:

    pm2 delete <pid>
    
    Run Code Online (Sandbox Code Playgroud)

通过这种方式,日志将保存到./err.log./out.log.

有关详细信息,请参阅文档.

我可以在数据库而不是日志文件中记录错误和信息吗?

我在官方文件中没有找到任何资源.您似乎需要自己编写代码并将日志保存到数据库中.


小智 14

只想添加到@shaochuancs的答案,在执行第3步之前,请确保删除旧进程.如果您不删除旧流程,则在启动应用程序后,对流程文件所做的更改将不会生效.

在执行上面的步骤3之前,您需要发出此命令:

pm2 delete <pid>
Run Code Online (Sandbox Code Playgroud)

  • thx man,你刚刚救了我一小时的WTF WTF WTF :) pm2删除所有 - >然后重新开始 (3认同)