logify
Version:
Logging framework for node and the browser
55 lines (42 loc) • 1.37 kB
JavaScript
;
var _toConsumableArray = require('babel-runtime/helpers/to-consumable-array')['default'];
var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default'];
Object.defineProperty(exports, '__esModule', {
value: true
});
exports['default'] = makeLogger;
var _extend = require('./extend');
var _extend2 = _interopRequireDefault(_extend);
var _util = require('util');
function makeLogger(level) {
return function log(context, message) {
for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
args[_key - 2] = arguments[_key];
}
// no context given
if (typeof context === 'string') {
args = [].slice.call(arguments, 1);
message = context;
context = null;
}
// context is an error
if (context instanceof Error) {
context = {
error: context
};
if (message == undefined) {
message = context.error.message;
}
}
if (!context) {
context = {};
}
if (message) {
context.message = _util.format.apply(undefined, [message].concat(_toConsumableArray(args)));
}
context.level = level;
context.time = context.time || new Date();
return this.log((0, _extend2['default'])({}, this.context, context));
};
}
module.exports = exports['default'];