Pm2更改日志文件位置

时间:2017-08-30 06:23:32

标签: node.js pm2 npm-start

关于pm2我有几个问题

  • 如何更改server-error-0.logserver-out-0.log的位置 由于服务器驱动器访问权限的限制,c:\users\user\.pm2\logs文件位置从<div class="logo-wrapper"> <a class="logo" href="<?php someCodeToGetUrl()"> <img src="<?php getLogoUrl(); ?>" /> </a> </div> 到其他驱动器。
  • 我可以在数据库中记录错误和信息而不是日志文件吗?我是否需要为此编写单独的模块,或者有任何方法可以实现此目的吗?

4 个答案:

答案 0 :(得分:11)

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

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

pm2 delete <pid>

答案 1 :(得分:10)

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

要更改pm2的日志文件位置,有两种解决方案:在执行pm2命令时将日志路径定义为参数(-l-o-e),或者从配置文件中启动pm2。

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

pm2 start app.js -o ./out.log -e ./err.log

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

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

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

    module.exports = {
      apps : [{
        name   : "app1",
        script : "./app.js",
        error_file : "./err.log",
        out_file : "./out.log"
      }]
    }
    
  3. 删除pm2中的现有流程:

    pm2 delete <pid>
    

    你可以通过以下方式获得pid:

    pm2 status
    
  4. 从配置文件中启动该过程:

    pm2 start ecosystem.config.js
    
  5. 通过这种方式,日志会保存到./err.log./out.log

    有关详细信息,请参阅document

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

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

答案 2 :(得分:0)

如果您想在启动时使用已更改的日志路径的pm2:

  1. pm2全部删除
  2. pm2启动ecology.js
  3. pm2保存
  4. pm2启动

答案 3 :(得分:0)

如果要将错误日志和控制台日志都写入同一文件,则可能是一个用例,例如我很想登录OneFile推送到ELK。可以使用-l

-l --log [path]              specify filepath to output both out and error logs

这里是例子

pm2 start server.js -l /app/logs/server.log

进行更改后,请不要忘记按照答案中的说明运行此命令。

pm2 delete <pid>