NodeJS + Express新的框架刷新页面在Node关闭控制台输出转为文件流输出,Node一直输出影响性能喏

博客围绕Express框架中Morgan日志打印展开。Morgan默认在Node控制台输出,虽利于开发阶段发现错误,但会影响服务器内存和流畅性。介绍了将日志打印到txt文件的方法,还提及发布网站时可借助forever或pm2守护进程,并利用其提供的日志打印口令。

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

Morgan 之前的log4js是有区分控制台打印和文件流打印(type: 'console', // 控制台输出、type: 'dateFile', // 文件输出

express框架morgan默认在node控制台输出,Morgan对于开发阶段的网站来说,日志打印可以及时帮我们发现错误,但是会影响到服务器内存,可以启动两个node分别启动两个express项目,一个有输出(Morgan未剔除),另一个无输出,打开任务管理器,你会发现有输出的CPU和内容会一直往上升,会影响到流畅性。

有些人可能会担心,如果我发布的网站,没有打印日志的话,我没有办法排查错误

1.可以打印到txt文件里面,如果想要每天记录到目录 中的一个日志文件中。请看官网吧

   https://www.npmjs.com/package/morgan

   app.use(logger('dev')) 在node控制台输出的命令,剔除该语句,控制台不再输出,在文件流中输出,请看代码

  下列代码以供参考 

        var logger = require('morgan');
        // app.use(logger('dev')); //打印到控制台,将该代码移除


        var accessLogStream = fs.createWriteStream(path.join(__dirname, 'log/access.log'), { flag: 'a' });
        // 创建一个写文件流,并且保存在当前文件夹的access.log文件中
        var errorLog = fs.createWriteStream(path.join(__dirname,'log/error.log'), {flags : 'a'});
        logger.format('hcsy', '[hcsy] :method :url :status');
        logger.token('type', function (req, res) { return req.headers['content-type'] })
        app.use(logger('short', { stream: accessLogStream }));
        //设置开启文件流,并且指明文件流的对象


        app.use(logger('combined', {stream : accessLogStrea}));// 打印到access.log文件里面

2.express网站发布会增加一个forever或者pm2来守护进程

同上剔除morgan控制台输出代码,整个模块不引入也行,直接用forever里面提供日志的打印口令,比如:forever start -l forever.log -e err.log -a ./bin/www,err.log 输出错误的内容,其他的自己去看forever官网吧

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值