UNPKG

laas-admin-api

Version:

LaaS admin api server.

49 lines (44 loc) 1.42 kB
(function () { 'use strict'; var uuid = require('node-uuid').v4; var clone = require('clone-deep'); module.exports = exports = function (name) { var cluster = require('cluster'), master = cluster.isMaster; var bunyan = require('bunyan'); var logger = bunyan.createLogger({ name: name || require('../package.json').name, level: 'info', master: master || void 0, worker: master ? void 0 : cluster.worker.id, serializers: { req: reqSerializer, res: bunyan.stdSerializers.res, err: bunyan.stdSerializers.err } }); console.error = logger.error.bind(logger); console.log = logger.info.bind(logger); console.warn = logger.warn.bind(logger); logger.middleware = middleware; return logger; }; function middleware () { return function (req, res, next) { var end = res.end; req.requestId = uuid(); res.setHeader('x-request-id', req.requestId); console.log({ req: req }, 'Http request received'); res.end = function () { end.apply(res, arguments); console.log({ req: req, res: res }, 'Http request handled'); }; next(); } } function reqSerializer(req) { var serialised = clone({ method: req.method, url: req.url, headers: req.headers, ip: req.ip }); if (serialised.headers) delete serialised.headers.authorization; return serialised; } })();