node+pm2+log4js多进程输出日志

本文介绍如何利用PM2和log4js配置Node.js应用的集群部署,包括全局安装PM2,配置log4js日志记录,以及通过PM2启动、管理和监控多进程应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

没安装pm2前先全局安装一下

npm install pm2 -g

集群配置log4js
项目启动文件配置:

const http = require('http');
const log4js = require('log4js');
const app = require('../app');
//require('./eureka')
const defaultPort = 3007;

// 初始化 log4js
log4js.configure(require('../config/log4js_config'));
const logger = log4js.getLogger('startup');
// 监听未捕获异常
process.on('uncaughtException', err => {
    if (err) {
        let msg = err;
        if (err.stack) {
            msg = err.stack;
        } else if (err.message) {
            msg = err.message;
        }
        logger.error(`ERROR: ${msg}`);
    }
});

if(process.env.NODE_ENV !== 'development'){
    app.set('port', process.env.PORT || defaultPort);
    const port = app.get('port');

    const server = http.createServer(app);

    server.listen(port, '0.0.0.0',() => {
        logger.info(`服务器已启动,访问 http://127.0.0.1:${port}`);
    });

    server.on('error', error => {
        if (error.syscall !== 'listen') {
            throw error;
        }

        switch (error.code) {
            case 'EACCES':
                logger.error(`没有权限设置端口:${port}`);
                process.exit(1);
                break;
            case 'EADDRINUSE':
                logger.error(`端口:${port} 已被占用`);
                process.exit(1);
                break;
            default:
                throw error;
        }
    });
}



module.exports = app;

log4js_config.js

module.exports = {
    pm2: true,
    pm2InstanceVar: 'www',
    disableClustering: true, // 采用集群模式时log4js不打印日志,设置禁用
    appenders: {
        console: {
            type: 'console'
        }
    },
    categories: {
        default: {
            appenders: ['console'],
            level: 'info'
        }
    }
};

多进程启动项目

pm2 start bin/www -i 0

bin/www 是项目的启动文件
0代表计算机有多少个核心就运行多少个进程,如果想开三个进程就把0改成3
在这里插入图片描述
查看进程:

pm2 list

查看日志:

pm2 logs

在这里插入图片描述
停止运行:

pm2 stop www

stop只是停止项目了 并没有关闭掉进程

关闭进程:

pm2 delete www

在这里插入图片描述
如何写打印日志
logger.info(xxx)
logger.error(xxx)…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

锅巴胸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值