日志管理

PM2可以获取实时日志并存储到硬盘中。

日志格式化的方式,创建日志文件的方式:所有内容都可以自定义。

访问日志

实时日志

# all apps logs
pm2 logs

# only app logs
pm2 logs app

日志文件

默认情况下,日志文件被保存到$HOME/.pm2/logs

使用下面的命令可以清空所有的应用日志:

pm2 flush

日志文件配置

自定义日志文件保存的位置:

module.exports = {
  apps: [{
      name: 'app',
      script: 'app.js',
      output: './out.log',
      error: './error.log',
	    log: './combined.outerr.log',
    }]
}

循环日志

如果你想将日志分割到多个文件,而不是使用一个大的日志文件,使用logrotate

pm2 install pm2-logrotate

如何配置循环日志

合并日志

在群集模式下,每个群集都有自己的日志文件。 你可以使用合并选项收集所有的日志到一个文件中:

module.exports = {
  apps: [{
      name: 'app',
      script: 'app.js',
      output: './out.log',
      error: './error.log',
      merge_logs: true,
    }]
}

日志仍然分为output/error/log

禁用日志

将日志输出到 /dev/null 来禁用日志:

module.exports = {
  apps: [{
      name: 'app',
      script: 'app.js',
      output: '/dev/null',
      error: '/dev/null',
    }]
}

日志格式化

JSON

输出JSON格式的日志:

Hello World!

变为:

{
   "message": "Hello World!\n",
   "timestamp": "2017-02-06T14:51:38.896Z",
   "type": "out",
   "process_id": 0,
   "app_name": "app"
}

添加下面的配置选项到你的生态系统文件ecosystem.config.js中:

"log_type": "json"

时间戳格式

在日志输出中添加时间戳:

Hello World!

变为:

12-02-2018: Hello World!

添加下面的配置选项到你的生态系统文件ecosystem.config.js中:

"log_date_format": "DD-MM-YYYY"

时间戳格式必须遵循moment.js格式

下一步

启动钩子