UNPKG

deep-framework

Version:
95 lines (82 loc) 2.44 kB
var winston = require('winston'); var moment = require('moment'); var logger; if (process.env.AWS_XRAY_DEBUG_MODE) { logger = new (winston.Logger)({ transports: [ new (winston.transports.Console)({ formatter: outputFormatter, timestamp: timestampFormatter }) ] }); } else { logger = new (winston.Logger)({ transports: [ new (winston.transports.File)({ filename: 'AWSXRay.log', formatter: outputFormatter, json: false, maxFiles: 10, maxSize: 5242880, timestamp: timestampFormatter }) ] }); } /* eslint-disable no-console */ if (process.env.LAMBDA_TASK_ROOT) { logger.error = function(string) { console.error(string); }; logger.info = function(string) { console.info(string); }; logger.warn = function(string) { console.warn(string); }; } /* eslint-enable no-console */ function timestampFormatter() { return moment().format('YYYY-MM-DD HH:mm:ss.SSSS Z'); } function outputFormatter(options) { return options.timestamp() +' [' + options.level.toUpperCase() + '] '+ (options.message !== undefined ? options.message : '') + (options.meta && Object.keys(options.meta).length ? '\n\t'+ JSON.stringify(options.meta) : '' ); } /** * Polyfill for Object.keys * @see: https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/keys */ if (!Object.keys) { Object.keys = (function() { 'use strict'; var hasOwnProperty = Object.prototype.hasOwnProperty, hasDontEnumBug = !({ toString: null }).propertyIsEnumerable('toString'), dontEnums = [ 'toString', 'toLocaleString', 'valueOf', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'constructor' ], dontEnumsLength = dontEnums.length; return function(obj) { if (typeof obj !== 'object' && (typeof obj !== 'function' || obj === null)) { throw new TypeError('Object.keys called on non-object'); } var result = [], prop, i; for (prop in obj) { if (hasOwnProperty.call(obj, prop)) { result.push(prop); } } if (hasDontEnumBug) { for (i = 0; i < dontEnumsLength; i++) { if (hasOwnProperty.call(obj, dontEnums[i])) { result.push(dontEnums[i]); } } } return result; }; }()); } module.exports = logger;