Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js pm2下的自定义日志记录_Node.js_Logging_Pm2 - Fatal编程技术网

Node.js pm2下的自定义日志记录

Node.js pm2下的自定义日志记录,node.js,logging,pm2,Node.js,Logging,Pm2,我在我的节点应用程序中有一些有用的日志记录,我将其写入console.log node server.js >> /var/log/nodeserver.log 2>&1 但是,在pm2下尝试相同操作时: pm2 start server.js >> /var/log/pm2server.log 2>&1 日志文件仅显示pm2的启动信息 使用pm2是否可以进行应用程序日志记录?在他们的页面上,他们讨论了日志记录,并显示了一个带有文本的图像,

我在我的节点应用程序中有一些有用的日志记录,我将其写入
console.log

node server.js >> /var/log/nodeserver.log 2>&1
但是,在pm2下尝试相同操作时:

pm2 start server.js >> /var/log/pm2server.log 2>&1
日志文件仅显示pm2的启动信息


使用pm2是否可以进行应用程序日志记录?在他们的页面上,他们讨论了日志记录,并显示了一个带有文本的图像,如
“log message from echo.js”
,但我看不到任何关于将自定义信息放入pm2日志的内容。

使用pm2运行时,应用程序日志将驻留在
$HOME/.pm2/logs
中,如前所述。用一个简单的
index.js
文件在本地验证这一点,该文件输出
console.log('test')


一个巧妙的功能是在终端中使用该功能:

pm2 logs [--raw]
这将实时传输所有日志。其他方便的命令包括:

  • pm2冲洗
  • pm2重新加载日志
2017年更新

将日志路径定义为执行pm2命令时的参数(
-l
-o
-e
)非常易于使用,通常是最佳选择

但是,如果不希望每次执行pm2时都定义日志路径,则可以生成配置文件,定义
错误\u文件
输出\u文件
,然后从该文件启动pm2:

  • 生成配置文件:
    pm2生态系统简单
    。这将生成一个文件
    ecosystem.config.js
    ,其中包含以下内容:

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

    module.exports = {
      apps : [{
        name   : "app1",
        script : "./app.js",
        error_file : "./err.log",
        out_file : "./out.log"
      }]
    }
    
  • 从配置文件启动流程:

    pm2 start ecosystem.config.js
    
  • 这样,日志将保存到
    /err.log
    /out.log


    有关详细信息,请参阅。

    如果是新开始,您只需:

    • 运行pm2启动/重新加载生态系统.config.js[--仅您的应用程序]
    但是,当它已经启动(pm2已经在管理它)时,你必须这样做(有人可以找到更好的方法,但这对我有用):

    • 运行pm2删除你的应用程序
    • 运行pm2启动

    我们可以更改日志路径吗?您当然可以,看看,尤其是
    -l
    -o
    -e
    是的!我后来拿到的。谢谢,我不想将信息日志写入文件。我只想在生产中继续登录控制台,不应该创建任何文件,如何使用pm2做到这一点?
    module.exports = {
      apps : [{
        name   : "app1",
        script : "./app.js",
        error_file : "./err.log",
        out_file : "./out.log"
      }]
    }
    
    pm2 start ecosystem.config.js