Node.js 应用部署-日志篇
2014-04-17 10:27
851 查看
在开发过程中,通过node app.js 命令运行服务器,可以很简单的启动一个网站。但是他有一个很重大的缺陷,就是没有日志功能,对于开发者来说,日志,尤其是错误日志是极其重要的,所以,有必要实现日志功能。
Express支持两种运行模式:开发模式和产品模式,前者的目的是利于调试,后者则是利于部署。使用产品模式运行服务器的方式很简单,只需设置NODE_ENV环境变量NODE_ENV=production即可。这时在运行node app.js 可以看到:
接下来让我们实现访问日志和错误日志功能
Express提供了一个访问日志中间件,只需指定stream参数为一个输出流即可将访问日志记录下来。打开app.js,在最上方加入以下代码:
然后在 app.configure 函数第一行加入:
至于错误日志,需要单独实现错误响应,修改如下:
这段代码的功能是通过app.error注册错误响应函数,在其中将错误写入错误日志流。
现在重新运行服务器后,即可看到访问日志和错误日志了。
Express支持两种运行模式:开发模式和产品模式,前者的目的是利于调试,后者则是利于部署。使用产品模式运行服务器的方式很简单,只需设置NODE_ENV环境变量NODE_ENV=production即可。这时在运行node app.js 可以看到:
Express server listening on port 3000 in production mode
接下来让我们实现访问日志和错误日志功能
Express提供了一个访问日志中间件,只需指定stream参数为一个输出流即可将访问日志记录下来。打开app.js,在最上方加入以下代码:
var fs = require('fs'); var accessLogfile = fs.createWriteStream('access.log' , {flags: 'a'}); var errorLogfile = fs.createWriteStream('error.log', {flags: 'a'});
然后在 app.configure 函数第一行加入:
app.use(express.logger({stream: accessLogfile}));
至于错误日志,需要单独实现错误响应,修改如下:
app.configure('production', function(){ app.error(function (err, req, res, next){ var meta = '[' + new Date() + ']' + req.url + '\n'; errorLogfile.write(meta + err.stack + '\n'); next(); }); });
这段代码的功能是通过app.error注册错误响应函数,在其中将错误写入错误日志流。
现在重新运行服务器后,即可看到访问日志和错误日志了。
相关文章推荐
- 7个Node.js开发贴士
- innode 表空间转 独立表空间操作
- node.js express 4.x 安装指南
- hadoop2.2.0 nodemanager启动后失败分析!!!
- hadoop 安装出现的几种异常的处理方法,hadoop无法启动,no namenode to stop问题的解决方法,no datanode
- Node学习笔记——模块和包
- 【链表转置】Reverse Nodes in k-Group
- 异步nodejs代码的同步样子写法样例
- NODE-WEBKIT教程(6)NATIVE UI API 之MENU(菜单)
- nodejs常见报错及解决方法
- node.js 入门
- 使用端口转发解决nodejs在80端口上的监听权限问题
- Node.js用fs.renameSync报cross-device link not permitted错
- node.js第八课(常用工具包util和事件EventEmitter)
- check_hadoop_datanode.py
- 7个Node.js开发贴士
- SSH框架问题——node to traverse cannot be null!报错问题
- USB Redirection hack on "Two Node Controller&Compute Neutron GRE+OVS" Fedora 20 Cluster
- Setting up Neutron-dhcp-agent & Dnsmasq on Two Node Neutron GRE+OVS F20 Cluster to launch VMs with M
- Nodejs实现websocket的4种方式