详解 PM2 日志的配置和使用方法

阅读时长 6 分钟读完

在前端开发中,我们常常需要记录一些重要的日志信息,以便于排查问题、优化性能等。而 PM2 是一个非常好用的 Node.js 进程管理工具,它不仅可以帮我们启动、监控、重启和停止 Node.js 进程,还可以方便地管理日志文件。本文将详细介绍 PM2 日志的配置和使用方法,希望对前端开发者有所帮助。

PM2 日志的配置

在 PM2 中,我们可以通过 pm2 logs 命令来查看进程的日志信息,但默认情况下,所有的日志信息都会输出到控制台上。这对于开发调试来说可能很方便,但对于生产环境来说就显得不太合适了。因此,我们需要对 PM2 的日志输出进行配置。

1. 配置文件

PM2 的日志配置是通过一个 ecosystem.config.js 文件来实现的,这个文件需要放在项目根目录下。我们可以通过以下命令来生成一个模板文件:

生成的 ecosystem.config.js 文件包含了一些默认配置和注释说明,我们需要根据自己的需求来进行修改。下面是一个简单的示例:

-- -------------------- ---- -------
-------------- - -
  ----- -
    -
      ----- --------
      ------- -----------
      ---------------- ----------- ----------
      ----------- -------------------
      --------- -----------------
      ---- -
        --------- ------------
      -
    -
  -
-

上面的配置文件中,我们定义了一个名为 myapp 的应用,它的启动脚本为 ./app.js。同时,我们还配置了日志的时间格式、错误日志文件和普通日志文件的输出路径,以及应用的环境变量。

2. 日志滚动

在生产环境中,我们通常需要对日志进行滚动,即定期清空或备份旧的日志文件,以避免日志文件过大导致系统瘫痪。PM2 提供了两种滚动方式:按时间滚动和按大小滚动。

按时间滚动

按时间滚动是指在一定时间间隔内,将日志输出到不同的文件中,以便于管理和查看。我们可以通过 rotate_intervalrotate_milliseconds 两个参数来配置按时间滚动的方式。其中,rotate_interval 表示滚动的时间间隔,可以是 'daily''hourly''minutely' 或者一个数字,表示以多少毫秒为单位滚动;rotate_milliseconds 表示滚动的时间点,可以是一个数字,表示从 0 点算起的毫秒数,或者一个时间字符串,表示滚动的具体时间点。下面是一个按天滚动的示例:

-- -------------------- ---- -------
-------------- - -
  ----- -
    -
      ----- --------
      ------- -----------
      ---------------- ----------- ----------
      ----------- -------------------
      --------- -----------------
      ---- -
        --------- ------------
      --
      -------------------- --------
      ------------------------ -
    -
  -
-

按大小滚动

按大小滚动是指在日志文件达到一定大小时,将其备份并新建一个文件继续输出。我们可以通过 max_sizeretain 两个参数来配置按大小滚动的方式。其中,max_size 表示每个日志文件的最大大小,可以是一个数字,表示以字节为单位的大小;retain 表示备份文件的数量,可以是一个数字,表示最多保留几个备份文件。下面是一个按大小滚动的示例:

-- -------------------- ---- -------
-------------- - -
  ----- -
    -
      ----- --------
      ------- -----------
      ---------------- ----------- ----------
      ----------- -------------------
      --------- -----------------
      ---- -
        --------- ------------
      --
      ------------- ------
      ----------- -
    -
  -
-

PM2 日志的使用

在配置好 PM2 日志后,我们可以通过 pm2 logs 命令来查看日志信息。这个命令会输出所有进程的日志信息,如果我们只想查看某个进程的日志,可以通过 pm2 logs <app-name> 命令来指定应用名称。下面是一些常用的 PM2 日志命令:

  • pm2 logs: 输出所有进程的日志信息
  • pm2 logs <app-name>: 输出指定应用的日志信息
  • pm2 flush: 清空所有进程的日志文件
  • pm2 reloadLogs: 重新载入所有进程的日志文件

除了命令行方式外,我们还可以通过 PM2 提供的 API 来管理日志文件。下面是一个使用 PM2 API 输出日志信息的示例:

-- -------------------- ---- -------
----- --- - --------------

----------------- -- -
  -- ----- -
    ------------------
    ---------------
  -

  ------------------- ---- -- -
    -- ----- -
      ------------------
      ---------------
    -

    ----------------- ------ -- -
      ----------------------------------- --------------
    --

    ----------------- ------ -- -
      ------------------------------------- --------------
    --
  --
--

上面的代码中,我们通过 pm2.connect 方法连接到 PM2,然后通过 pm2.launchBus 方法获取一个事件总线。在事件总线上,我们监听了 log:outlog:err 两个事件,分别表示普通日志和错误日志的输出。当有日志输出时,我们就可以在控制台上打印出日志的内容和所属进程的名称了。

结语

本文详细介绍了 PM2 日志的配置和使用方法,希望对前端开发者有所帮助。在实际开发中,我们需要根据自己的需求和实际情况来配置 PM2 的日志输出,以便于更好地管理和排查问题。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67d3d77fa941bf7134742601

纠错
反馈