我正在基于expressjs构建一个应用程序,我想在其中记录所有事件.我能找到温斯顿,看起来很酷.无论如何,我正在寻找一种方法,如何将它连接到我的expressjs应用程序.
我还想在应用程序中登录.我的请求并不是那么简单,所以我想在我的应用程序中记录所有内容(不仅仅是请求).
我目前的情况:
server.js(我想在此级别记录http请求)
var express = require('express');
var app = express();
var fs = require('fs');
// Post parser
app.configure(function(){
app.use(express.bodyParser());
});
// Load routes
require('fs').readdirSync(__dirname + '/routes').forEach(function(file) {
require(__dirname + '/routes/' + file)(app);
});
// 404: Not found
app.use(function(req, res, next){
res.json(404, {ERROR: 'Page not found.'});
});
// 500: Error reporing
app.use(function(err, req, res, next){
console.error(err.stack);
res.json(500, {ERROR: 'Internal server error.'} );
});
// Startup new server
app.listen(900);
routes/something.js
var something = require(__dirname + '/../controller/something.js');
module.exports = function(app) {
app.get('/v1/something', function(req, res, next) { new something().getAll(req, res, next); });
};
controller/something.js(我想使用同一个记录器进行调试日志(log)记录)
/**
* Constructor
*
*/
function Something() {
};
/**
* Get all the data
*
*/
Something.prototype.getAll = function(req, res, next) {
// I want to log some very important information here
res.json({result: true, data: ['hello', 'hi', 'ciao', 'buf']});
}
module.exports = Something;
我考虑的另一件事是记录从控制器(例如模型或其他库)调用的函数中的所有事件.
所以我认为,创建一些记录器库的好方法可能是使用:
var logger = require(__dirname + '/../libraries/logger.js');
包含记录器定义.另一个我不知道如何解决的问题是如何给数据加前缀.我有很多并发请求,我想看看每个请求调用了哪个调试消息.