介绍
在 Node.js 应用的开发和运行过程中,我们经常需要对进程和日志进行监控和管理。PM2 是一个流行的 Node.js 进程管理器,可以很好地满足这些需求。其中,监控进程日志输出是一个重要的功能,可以帮助我们快速地定位和解决问题。
本文将介绍如何使用 PM2 监控 Node.js 进程的日志输出,包括安装配置 PM2,监控日志的基本用法,以及扩展特性的实现和应用。
安装配置 PM2
首先,我们需要在本地安装 PM2。可以通过以下命令进行安装:
npm install pm2 -g
安装完成后,可以使用以下命令验证是否安装成功:
pm2 -v
接下来,我们需要在项目目录下创建一个配置文件 pm2.config.js
,定义需要启动的 Node.js 应用和参数。以下是一个简单的示例代码:
// javascriptcn.com 代码示例 module.exports = { apps: [ { name: 'my-app', script: './app.js', args: [], log_date_format: 'YYYY-MM-DD HH:mm:ss.SSS', watch: false, max_memory_restart: '1G', }, ], };
上述配置文件定义了一个名为 my-app
的应用,启动脚本为 app.js
,日志输出格式为 YYYY-MM-DD HH:mm:ss.SSS
,不监控文件变化,当内存使用达到 1G 时进行重启。
我们可以使用以下命令启动应用:
pm2 start pm2.config.js
监控日志输出
PM2 默认将应用的日志输出到 ~/.pm2/logs/
目录下,以应用名称的命名。可以通过以下命令查看日志:
pm2 logs my-app
该命令将列出 my-app
应用的日志输出,每条记录包括时间戳、日志级别、应用名称和日志内容。可以通过以下命令过滤出指定日志级别的记录:
pm2 logs my-app --log-level=error
还可以使用 --json
参数输出 JSON 格式的日志记录,便于后续处理和分析:
pm2 logs my-app --json
除了直接查看日志外,还可以使用 PM2 提供的监控工具 pm2 monit
来实现实时监控应用的状态和日志输出。
pm2 monit
该命令将打开一个 TUI 界面,列出运行中的所有应用的状态和资源占用情况,并可以在界面上查看和搜索日志记录。
扩展特性的实现和应用
除了上述基本的监控和管理功能外,PM2 还提供了一些扩展的特性,可以进一步优化 Node.js 应用的运行和日志管理。
环境变量配置
在 Node.js 应用的开发和调试过程中,我们经常需要配置一些环境变量,例如数据库连接地址、密钥等。在 PM2 中,可以通过以下命令来配置环境变量:
pm2 start app.js --env NODE_ENV=production,DB_URL=mongodb://localhost/myapp
在应用中可以通过 process.env
来读取和使用这些环境变量。
自定义日志输出格式
默认情况下,PM2 输出的日志格式比较简单,只包括时间戳、级别和内容。如果需要添加自定义的字段或更改日志格式,可以通过修改 PM2 的配置文件 pm2.config.js
来实现。
例如,可以在日志中添加应用名称和进程号:
// javascriptcn.com 代码示例 module.exports = { apps: [ { name: 'my-app', script: './app.js', args: [], log_date_format: 'YYYY-MM-DD HH:mm:ss.SSS', watch: false, max_memory_restart: '1G', env: { APP_NAME: 'My App', }, output: './logs/out.log', error: './logs/error.log', log_type: 'json', log_format: '{"app":":app","pid":":pid","time":":date","type":":type","message":":message"}', }, ], };
上述配置文件中,添加了 env
属性来定义应用名称,output
和 error
属性来定义标准输出和错误输出的日志文件路径,log_type
属性来定义日志格式,log_format
属性来定义 JSON 格式的日志输出。
集成日志分析工具
PM2 还提供了一些插件和工具,可以集成第三方的日志分析和监控工具,实现更丰富的日志管理功能。例如,可以使用 pm2-logstash-logger
插件将日志输出到 Logstash 中心化日志平台,使用 pm2-server-monit
工具监控服务器资源使用情况等。
总结
本文介绍了如何使用 PM2 监控 Node.js 应用的进程和日志输出,包括安装配置 PM2,监控日志的基本用法,以及扩展特性的实现和应用。在实际项目中,灵活应用这些功能可以帮助我们更好地理解和管理 Node.js 应用的运行和日志记录,为应用的性能和可靠性提供支持。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/652d0d6a7d4982a6ebe88f83