日志管理

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

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

访问日志

实时日志

  1. # all apps logs
  2. pm2 logs
  3. # only app logs
  4. pm2 logs app

日志文件

默认情况下,所有日志都被保存到 $HOME/.pm2/logs

您可以以此清空所有应用日志:

  1. pm2 flush

日志文件配置

您可以为日志指定自定义位置。

  1. module.exports = {
  2. apps: [{
  3. name: 'app',
  4. script: 'app.js',
  5. output: './out.log',
  6. error: './error.log',
  7. log: './combined.outerr.log',
  8. }]
  9. }
  • output 只是标准输出 (console.log)
  • error 只是错误输出 (console.error)
  • log 结合了 outputerror, 默认是禁用的

循环日志

如果您想将日志分成多个文件而不是大文件,请使用循环日志logrotate:

  1. pm2 install pm2-logrotate

这里了解如何配置模块。

合并日志

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

  1. module.exports = {
  2. apps: [{
  3. name: 'app',
  4. script: 'app.js',
  5. output: './out.log',
  6. error: './error.log',
  7. merge_logs: true,
  8. }]
  9. }

日志仍然分为output/error/log

禁用日志

您可以通过将日志发送到 /dev/null 来禁用日志:

  1. module.exports = {
  2. apps: [{
  3. name: 'app',
  4. script: 'app.js',
  5. output: '/dev/null',
  6. error: '/dev/null',
  7. }]
  8. }

格式化日志

JSON

您可以以JSON格式输出日志:

  1. echo

变为:

  1. {
  2. "message": "echo\n",
  3. "timestamp": "2017-02-06T14:51:38.896Z",
  4. "type": "out",
  5. "process_id": 0,
  6. "app_name": "app"
  7. }

在您的生态系统文件中添加此条目:

ecosystem file: “log_type”: “json”`

Timestamp format 时间戳格式

您可以以添加时间戳来输出日志:

  1. echo

变为:

  1. 12-02-2018: echo

在您的生态系统文件中添加此条目:

"date_log_format": "JJ-MM-YYYY"

格式必须遵循moment.js格式,清单在 此处

下一步

启动挂钩

疑问?

我们一直乐于帮您解决可能遇到的问题。搜索我们的文档或查看常见问题的答案。您也可以在我们的社区论坛发布问题或评论

原文: https://pm2.io/doc/zh/runtime/guide/log-management/