adds logger and starts logging errors

This commit is contained in:
Matteo Pagliazzi
2015-11-03 17:47:16 +01:00
parent 5f3e798016
commit 5e73bc9f1c
3 changed files with 30 additions and 3 deletions

View File

@@ -83,7 +83,7 @@
"swagger-node-express": "lefnire/swagger-node-express#habitrpg",
"universal-analytics": "~0.3.2",
"validator": "~3.19.0",
"winston": "~0.8.0",
"winston": "~2.0.1",
"winston-mail": "~0.2.9",
"winston-newrelic": "~0.1.4"
},

View File

@@ -0,0 +1,21 @@
'use strict';
// Logger utility
// TODO remove winston-mail and winston-newrelic if not used
let winston = require('winston');
let nconf = require('nconf');
// TODO use const?
// TODO move isProd to a single location
let isProd = nconf.get('NODE_ENV') === 'production';
let logger = new winston.Logger();
if (isProd) {
// TODO production logging
} else {
logger
.add(winston.transports.Console);
}
module.exports = logger;

View File

@@ -2,13 +2,19 @@
// The error handler middleware that handles all errors
// and respond to the client
let logger = require('../../libs/api-v3/logger');
let errors = require('../../libs/api-v3/errors');
let CustomError = errors.CustomError;
let InternalServerError = errors.InternalServerError;
module.exports = function (err, req, res, next) {
// TODO add logging
// Log the original error with some metadata
let stack = err.stack || err.message || err;
logging.error(stack, {
originalUrl: req.originalUrl,
headers: req.headers,
body: req.body
});
// In case of a CustomError class, use it's data
// Otherwise try to identify the type of error (mongoose validation, mongodb unique, ...)