PM2 日志管理
PM2 提供了灵活且强大的日志管理功能,可以帮助开发者轻松查看和管理 Node.js 应用的输出日志和错误日志。通过 PM2 的日志管理,你可以实时跟踪应用的运行状态、调试错误并生成可追溯的日志记录。
1. 查看实时日志
要查看应用的实时日志,可以使用以下命令:
pm2 logs这将显示所有正在运行的应用的日志。如果你只想查看特定应用的日志,可以指定应用名称或 ID:
pm2 logs my-app或者:
pm2 logs 0默认情况下,pm2 logs 命令会同时显示 标准输出日志(stdout)和 错误日志(stderr)。
日志输出示例
[0] my-app | Server started on port 3000
[0] my-app | Error: Connection failed
[0] my-app | at /path/to/app.js:15:7日志中包含了应用的标准输出信息(如启动信息、正常日志)以及错误信息。
2. 查看错误日志
PM2 还允许你单独查看错误日志。如果你只关心应用的错误输出,可以使用 --err 标志来过滤:
pm2 logs my-app --err这将只显示应用的错误日志,帮助你快速定位并解决问题。
3. 管理日志文件
PM2 默认将日志输出到文件中,方便后续查看和存档。你可以通过以下命令查看日志文件的位置:
pm2 show my-app该命令会列出所有进程的信息,其中包括 stdout 和 stderr 日志文件的路径。
示例输出
Describing process with id 0 - name my-app
--------------------------------------------------------------
pid 1234
status online
name my-app
cpu 0.5%
memory 50MB
user root
watching no
uptime 3h
script path /path/to/my-app/app.js
stdout log /path/to/my-app/logs/my-app-out.log
stderr log /path/to/my-app/logs/my-app-error.log4. 日志滚动和自动清理
PM2 支持日志滚动和自动清理功能,帮助你避免日志文件无限制增长,占用过多磁盘空间。你可以在配置文件中设置日志滚动的规则。
设置日志滚动
在 ecosystem.config.js 配置文件中,你可以通过 log_date_format、max_size 和 retain 等选项来设置日志的滚动策略。
module.exports = {
apps: [
{
name: 'my-app',
script: './app.js',
log_date_format: 'YYYY-MM-DD HH:mm:ss',
max_size: '10M', // 日志文件达到 10MB 时滚动
retain: 7, // 保留 7 个滚动日志文件
},
],
};配置项说明:
- log_date_format: 设置日志的时间格式。
- max_size: 设置日志文件的最大大小,超过此大小后将自动滚动。
- retain: 设置保留的滚动日志文件数量,超出数量的旧日志会被删除。
启用日志滚动
配置完成后,使用以下命令启动应用:
pm2 start ecosystem.config.jsPM2 会自动根据配置滚动日志,并在磁盘空间不足时自动清理旧日志。
5. 手动清理日志
如果你需要手动清理 PM2 生成的日志文件,可以使用 pm2 flush 命令:
pm2 flush此命令会清空所有应用的日志文件内容,但不会删除日志文件本身。
6. 结语
PM2 提供了强大的日志管理功能,让你能够轻松管理和查看应用的运行日志。无论是实时查看日志、分析错误日志,还是设置日志滚动和自动清理,PM2 都为开发者提供了多种工具来确保应用的稳定运行。
通过合理配置和使用 PM2 的日志功能,你可以更高效地监控和调试 Node.js 应用,确保应用的高可用性和可追溯性。