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