Skip to content

Commit

Permalink
First working version
Browse files Browse the repository at this point in the history
  • Loading branch information
christiaanwesterbeek committed Jan 8, 2014
1 parent 9fee19f commit d210278
Showing 1 changed file with 43 additions and 91 deletions.
134 changes: 43 additions & 91 deletions lib/express-loggly.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,112 +9,64 @@ var client = loggly.createClient(config.loggly);
//some other middleware for logging:
// http://fabianosoriani.wordpress.com/2013/04/13/loggly-middleware-for-express-js-server-visibility/
//
var tags = ['application', 'node', 'express', 'http'];

var logger = function (err, req, res, next) {
console.log('express-loggly middleware function call....', err);
if (err) {
console.log('arguments', arguments)
var logger = function (err, req, res, next, type) {
if (!err && type === 'error')
return;

console.log('log in loggly');

var level;

if (err || res.statusCode >= 500) { // server internal error or error
level = 'error';
} else if (res.statusCode >= 400) { // client error
level = 'warn';
} else { // redirect/success
level = 'info';
}
//console.log(arguments);

var fields = { //partly from express-bunyan-logger (middleware)
'level' : level,
'location' : process.argv && process.argv.length && process.argv[1],
'pid' : process.pid,
'host' : req.host,
'port' : req.app.settings.port,
'path' : req.path,
'query' : req.query,
'protocol' : req.protocol,
'method' : req.method,
'status' : res.statusCode,
'remoteAddress': req.headers['x-forwarded-for'] || req.connection.remoteAddress ||
(req.socket && req.socket.remoteAddress) ||
(req.socket.socket && req.socket.socket.remoteAddresss),
'user-agent' : req.header('user-agent'),
'http-version' : req.httpVersionMajor+'.'+req.httpVersionMinor,
'sessionID' : req.sessionID,
'body' : req.body && req.body.toString && req.body.toString().substring(0, Math.max(req.body.toString().length, 20)),
'originalUrl' : req.originalUrl,
'referrer' : req.referrer,
'headers' : req.query/
}

client.log(fields, tags)
next(err);
}

module.exports.requestLogger = function(opts) {
return function (req, res, next) {
console.log('requestLogger')
logger(null, req, res, next)
logger(null, req, res, next, 'request')
}
};

module.exports.errorLogger = function(opts) {
return function (err, req, res, next) {
console.log('errorLogger')
logger(err, req, res, next)
logger(err, req, res, next, 'error')
}

};

//ook loggen in textbestand met log4js, winston of bunyan

/*
// Handle 404
app.use(function(req, res) {
res.status(400);
res.render('404.jade', {title: '404: File Not Found'});
});
// Handle 500
app.use(function(error, req, res, next) {
res.status(500);
res.render('500.jade', {title:'500: Internal Server Error', error: error});
});
module.exports = function(opts) {
var logger = module.exports.errorLogger(opts);
return function(req, res, next) {
logger(null, req, res, next);
};
};
module.exports.errorLogger = function(opts) {
var logger, opts = opts || {};
return function(err, req, res, next) {
if(err) console.log(err.stack);
var app = req.app || res.app,
status = res.statusCode,
method = req.method,
url = req.url || '-',
referer = req.header('referer') || '-',
ua = req.header('user-agent'),
httpVersion = req.httpVersionMajor+'.'+req.httpVersionMinor,
ip, logFn;
if(!logger) {
opts.name = (opts.name || app.settings.shortname || app.settings.name || app.settings.title || 'express');
opts.serializers = opts.serializers || {};
opts.serializers.req = opts.serializers.req || bunyan.stdSerializers.req;
opts.serializers.res = opts.serializers.res || bunyan.stdSerializers.res;
err && ( opts.serializers.err = opts.serializers.err || bunyan.stdSerializers.err);
logger = bunyan.createLogger(opts);
}
if(err || status >= 500) { // server internal error or error
logFn = logger.error;
}else if (status >= 400) { // client error
logFn = logger.warn;
}else { // redirect/success
logFn = logger.info;
}
ip = ip || req.ip || req.connection.remoteAddress ||
(req.socket && req.socket.remoteAddress) ||
(req.socket.socket && req.socket.socket.remoteAddresss) ||
'127.0.0.1';
var meta = {
'remoteAddress': ip,
'method': method,
'url': url,
'referer': referer,
'user-agent': ua,
'body': req.body && req.body.toString && req.body.toString().substring(0, Math.max(req.body.toString().length, 20)),
'http-version': httpVersion,
"statusCode": status,
'req': req,
'res': res
};
err && (meta.err = err);
logFn.call(logger, meta, [
ip, '- -', method, url, 'HTTP/'+httpVersion, status,
res.get('Content-Length'), referer, ua.family, ua.major+'.'+ua.minor, ua.os,
err ? "error occurs" : ""].join(' '));
next();
};
};
*/
//ook loggen in textbestand met log4js, winston of bunyan

0 comments on commit d210278

Please sign in to comment.