node.js - pm2集群模式不输出日志

标签 node.js pm2

Node :12.13.0

pm2: 4.2.3

问题是 pm2-out 和 pm2-err 日志文件中没有打印任何内容,而不是 pm2 打印正在执行的脚本的几行。我尝试了 Winston 和 Debug 记录器。当我以 fork 模式启动时,所有日志都会被打印出来。此外,pm2 logs 显示日志但文件为空。

我使用 merge_logs 来避免将日志拆分或错误地放入每个进程的多个文件中。

我也尝试过指定日志名称,但没有成功。如果有人可以帮助我,在此先感谢您。

附言我不想使用 Winston 输出来归档。此外,使用 pm2 monit 我没有看到任何东西。

ecosystem.config.js:

module.exports = {
 apps: [
    {
        name: 'client',
        script: 'npm',
        args: 'run start:client',
        cwd: '/mnt/data/app',
        watch: false,
        log_date_format: 'DD-MM-YYYY HH:mm',
        exec_mode: 'cluster',
        instances: '2',
        merge_logs: true,
        env: {
            PORT: 8080,
            NODE_ENV: 'production',
        },
    },
    {
        name: 'server',
        script: 'npm',
        args: 'run start:server',
        cwd: '/mnt/data/app',
        watch: false,
        log_date_format: 'DD-MM-YYYY HH:mm',
        exec_mode: 'cluster',
        instances: '2',
        merge_logs: true,
        env: {
            PORT: 3000,
            NODE_ENV: 'production',
           },
       },
    ],
};

最佳答案

运行此命令 pm2 install pm2-intercom 可能在没有此 & 的情况下工作

然后在 log4js 配置中添加 pm2: true,如下所示:

log4js.configure({
    appenders: { 
        out: { 
            type: 'stdout'
        }
    },
    categories: { 
        default: { 
            appenders: ['out'], 
            level: 'info'
        }
    },
    pm2: true
});

更多详细信息,请参阅 https://github.com/log4js-node/log4js-node/blob/master/docs/clustering.md

关于node.js - pm2集群模式不输出日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59894803/

相关文章:

node.js - 小型 Node.js 应用程序 Pod 的 GKE CPU 不足

jquery - express 请求处理超时?

python - ffmpeg Python命令在PM2环境下只运行一次

node.js - 如何动态连接到 Sails.js 中的数据库

Node.js:是否可以在没有外部模块的情况下模拟 HTTP 连接?

javascript - Node.js 检测两个 Mongoose 查找何时完成

pm2 - 我找不到进程ID

PM2-健康 : can i use pm2-health module for sending email alerts/notifications?

linux - 如何使用 Bash 编写 JSON 文件?

node.js - 如何强制 pm2 每小时重新启动?命令行方法