Я создаю приложение на основе expressjs, и я хотел бы записывать в него все события. Я мог бы найти winston, который кажется крутым. В любом случае, я ищу способ подключения к моему приложению 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);
<сильные > маршруты /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 (я бы хотел использовать тот же журнал для ведения журнала отладки)
/**
* 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');
содержащий определение регистратора. Другая проблема, которую я не знаю, как решить, - это префикс данных. Вы знаете, у меня много одновременных запросов, и я хотел бы видеть, какое сообщение отладки вызывается каждым запросом.