关于Node的后台日志功能
代码如下:问题是:1、访问日志文件没有被写入 2、这俩文件怎么把他们创建在和服务端启动文件在同一个目录下
fs = require('fs'),
accessLogfile = fs.createWriteStream('./logs/access.log', {flags: 'a'}), //访问日志
errorLogfile = fs.createWriteStream('./logs/error.log', { flags: 'a' }); //错误日志
app.configure('production', function () {
app.use(express.logger({ stream: accessLogfile }));
app.use(function (err, req, res, next) {
var now = new Date();
var time = now.getFullYear() + '-' + now.getMonth() + '-' + now.getDate() + ' '
+ now.getHours() + ':' + now.getMinutes() + ':' + now.getSeconds();
var meta = '[' + time + '] '+req.method+' ' + req.url + '\r\n';
errorLogfile.write(meta + err.stack + '\r\n\r\n\r\n');
next();
});
});
6 回复
日志用log4js吧 http://blog.fens.me/nodejs-log4js/
@bsspirit 我试过log4js 但是不知道为什么只能写入访问信息,错误信息无法写入,而且文件也没法放到和启动文件同目录下。请指点
- 错误日志: 访问错误通过Level配置
- 系统错误: 通过程序判断,用程序输出 logger.error(‘Cheese is too ripe!’);
- 输出目录:filename: ‘logs/access.log’,
@bsspirit 错误输出搞定了,只是文件的创建位置还是会在我的C盘(系统盘),这个是不是和环境变量有关系?
你把log4js的配置,整个贴出来
我的项目没有单独做日志设置,因为项目是用 forever 启动的,forever 本身具有日志记录功能