NodeJS + Express 最新的框架刷新页面在Node关闭控制台输出转为文件流输出
2019-05-24 10:25
465 查看
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控制台输出的命令,剔除该语句,控制台不再输出,在文件流中输出,请看代码
下列代码以供参考
[code] 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官网吧
相关文章推荐
- 例子:实现最新版本Node.js中Express+mongodb的登录注册页面
- 从零开始学习Node.js系列教程之基于connect和express框架的多页面实现数学运算示例
- node.js使用(六):express框架的安装
- 判断页面是关闭还是刷新的js代码
- 用js判断页面刷新或关闭的方法(onbeforeunload与onunload事件)
- JS 触发不同ifram控件,实现刷新,关闭标签(H+框架)
- node.js express框架文件上传路径
- 输出js及时刷新页面
- JS刷新框架中的其他页面&&JS刷新窗口方法汇总
- Node.js Express框架
- Node.js Express框架
- nodejs+express搭建电影网站之二 -----具体项目结构 开发环境的建立 测试页面流程跑通
- Node.js、Express框架获取客户端IP地址
- JS监听页面刷新或关闭事件
- ThinkPHP 表单提交操作成功后执行JS操作如何刷新父页面或关闭当前页等操作
- Node.js安装express框架出现的问题级解决
- Node.js Express 框架
- js的node.js和express框架在centos的安装及简单实例
- node.js之express框架
- [Javascript]JS当前页面和框架自动刷新的方法[脚本代码大全]