UNPKG

27.1 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.bufferDrainEvent = exports.unpipeWritableEvent = exports.pipeWritableEvent = exports.finishWritableEvent = exports.drainWritableEvent = exports.timeoutEvent = exports.disconnectedEvent = exports.connectedEvent = exports.logEvent = exports.errorEvent = exports.default = undefined;
7
8var _setImmediate2 = require('babel-runtime/core-js/set-immediate');
9
10var _setImmediate3 = _interopRequireDefault(_setImmediate2);
11
12var _isInteger = require('babel-runtime/core-js/number/is-integer');
13
14var _isInteger2 = _interopRequireDefault(_isInteger);
15
16var _promise = require('babel-runtime/core-js/promise');
17
18var _promise2 = _interopRequireDefault(_promise);
19
20var _slicedToArray2 = require('babel-runtime/helpers/slicedToArray');
21
22var _slicedToArray3 = _interopRequireDefault(_slicedToArray2);
23
24var _defineProperty = require('babel-runtime/core-js/object/define-property');
25
26var _defineProperty2 = _interopRequireDefault(_defineProperty);
27
28var _getIterator2 = require('babel-runtime/core-js/get-iterator');
29
30var _getIterator3 = _interopRequireDefault(_getIterator2);
31
32var _typeof2 = require('babel-runtime/helpers/typeof');
33
34var _typeof3 = _interopRequireDefault(_typeof2);
35
36var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
37
38var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
39
40var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
41
42var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
43
44var _createClass2 = require('babel-runtime/helpers/createClass');
45
46var _createClass3 = _interopRequireDefault(_createClass2);
47
48var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
49
50var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
51
52var _get2 = require('babel-runtime/helpers/get');
53
54var _get3 = _interopRequireDefault(_get2);
55
56var _inherits2 = require('babel-runtime/helpers/inherits');
57
58var _inherits3 = _interopRequireDefault(_inherits2);
59
60var _lodash = require('lodash');
61
62var _lodash2 = _interopRequireDefault(_lodash);
63
64var _semver = require('semver');
65
66var _semver2 = _interopRequireDefault(_semver);
67
68var _net = require('net');
69
70var _net2 = _interopRequireDefault(_net);
71
72var _tls = require('tls');
73
74var _tls2 = _interopRequireDefault(_tls);
75
76var _url = require('url');
77
78var _url2 = _interopRequireDefault(_url);
79
80var _stream = require('stream');
81
82var _codependency = require('codependency');
83
84var _codependency2 = _interopRequireDefault(_codependency);
85
86var _reconnectCore = require('reconnect-core');
87
88var _reconnectCore2 = _interopRequireDefault(_reconnectCore);
89
90var _defaults = require('./defaults');
91
92var defaults = _interopRequireWildcard(_defaults);
93
94var _levels = require('./levels');
95
96var levelUtil = _interopRequireWildcard(_levels);
97
98var _text = require('./text');
99
100var _text2 = _interopRequireDefault(_text);
101
102var _serialize = require('./serialize');
103
104var _serialize2 = _interopRequireDefault(_serialize);
105
106var _error = require('./error');
107
108var _ringbuffer = require('./ringbuffer');
109
110var _ringbuffer2 = _interopRequireDefault(_ringbuffer);
111
112var _bunyanstream = require('./bunyanstream');
113
114var _bunyanstream2 = _interopRequireDefault(_bunyanstream);
115
116function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
117
118function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
119
120var newline = /\n/g;
121var tokenPattern = /[a-f\d]{8}-([a-f\d]{4}-){3}[a-f\d]{12}/;
122
123var finalizeLogString = function finalizeLogString(log, token) {
124 return token + ' ' + log.toString().replace(newline, '\u2028') + '\n';
125};
126
127var getConsoleMethod = function getConsoleMethod(lvl) {
128 if (lvl > 3) {
129 return 'error';
130 } else if (lvl === 3) {
131 return 'warn';
132 }
133 return 'log';
134};
135
136var getSafeProp = function getSafeProp(log, prop) {
137 var safeProp = prop;
138 while (safeProp in log) {
139 safeProp = '_' + prop;
140 }
141 return safeProp;
142};
143
144var requirePeer = _codependency2.default.register(module);
145
146var Logger = function (_Writable) {
147 (0, _inherits3.default)(Logger, _Writable);
148
149 function Logger(opts) {
150 (0, _classCallCheck3.default)(this, Logger);
151
152 var _this = (0, _possibleConstructorReturn3.default)(this, (0, _getPrototypeOf2.default)(Logger).call(this, {
153 objectMode: true
154 }));
155
156 if (_lodash2.default.isUndefined(opts)) {
157 throw new _error.BadOptionsError(opts, _text2.default.noOptions());
158 }
159
160 if (!_lodash2.default.isObject(opts)) {
161 throw new _error.BadOptionsError(opts, _text2.default.optionsNotObj(typeof opts === 'undefined' ? 'undefined' : (0, _typeof3.default)(opts)));
162 }
163
164 if (_lodash2.default.isUndefined(opts.token)) {
165 throw new _error.BadOptionsError(opts, _text2.default.noToken());
166 }
167
168 if (!_lodash2.default.isString(opts.token) || !tokenPattern.test(opts.token)) {
169 throw new _error.BadOptionsError(opts, _text2.default.invalidToken(opts.token));
170 }
171
172 _this.levels = levelUtil.normalize(opts);
173
174 var _iteratorNormalCompletion = true;
175 var _didIteratorError = false;
176 var _iteratorError = undefined;
177
178 try {
179 var _loop = function _loop() {
180 var lvlName = _step.value;
181
182 if (lvlName in _this) {
183 throw new _error.BadOptionsError(opts, _text2.default.levelConflict(lvlName));
184 }
185
186 (0, _defineProperty2.default)(_this, lvlName, {
187 enumerable: true,
188 writable: false,
189 value: function value() {
190 this.log.apply(this, [lvlName].concat(Array.prototype.slice.call(arguments)));
191 }
192 });
193 };
194
195 for (var _iterator = (0, _getIterator3.default)(_this.levels), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
196 _loop();
197 }
198 } catch (err) {
199 _didIteratorError = true;
200 _iteratorError = err;
201 } finally {
202 try {
203 if (!_iteratorNormalCompletion && _iterator.return) {
204 _iterator.return();
205 }
206 } finally {
207 if (_didIteratorError) {
208 throw _iteratorError;
209 }
210 }
211 }
212
213 _this.secure = opts.secure === undefined ? defaults.secure : opts.secure;
214 _this.debugEnabled = opts.debug === undefined ? defaults.debug : opts.debug;
215 _this.json = opts.json;
216 _this.flatten = opts.flatten;
217 _this.flattenArrays = 'flattenArrays' in opts ? opts.flattenArrays : opts.flatten;
218 _this.console = opts.console;
219 _this.withLevel = 'withLevel' in opts ? opts.withLevel : true;
220 _this.withStack = opts.withStack;
221 _this.timestamp = opts.timestamp || false;
222
223 _this.bufferSize = opts.bufferSize || defaults.bufferSize;
224 _this.port = opts.port || (_this.secure ? defaults.portSecure : defaults.port);
225 _this.host = opts.host;
226 _this.minLevel = opts.minLevel;
227 _this.replacer = opts.replacer;
228 _this.inactivityTimeout = opts.inactivityTimeout || defaults.inactivityTimeout;
229 _this.token = opts.token;
230 _this.reconnectInitialDelay = opts.reconnectInitialDelay || defaults.reconnectInitialDelay;
231 _this.reconnectMaxDelay = opts.reconnectMaxDelay || defaults.reconnectMaxDelay;
232 _this.reconnectBackoffStrategy = opts.reconnectBackoffStrategy || defaults.reconnectBackoffStrategy;
233
234 if (!_this.debugEnabled) {
235 _this.debugLogger = {
236 log: function log() {}
237 };
238 } else {
239 _this.debugLogger = opts.debugLogger && opts.debugLogger.log ? opts.debugLogger : defaults.debugLogger;
240 }
241
242 var isSecure = _this.secure;
243 _this.ringBuffer = new _ringbuffer2.default(_this.bufferSize);
244 _this.reconnect = (0, _reconnectCore2.default)(function initialize() {
245 var _this2 = this;
246
247 var connection = void 0;
248 var args = [].slice.call(arguments);
249 if (isSecure) {
250 connection = _tls2.default.connect.apply(_tls2.default, args, function () {
251 if (!connection.authorized) {
252 var errMsg = connection.authorizationError;
253 _this2.emit(new _error.LogentriesError(_text2.default.authError(errMsg)));
254 } else if (_tls2.default && _tls2.default.CleartextStream && connection instanceof _tls2.default.CleartextStream) {
255 _this2.emit('connect');
256 }
257 });
258 } else {
259 connection = _net2.default.connect.apply(null, args);
260 }
261 connection.setTimeout(opts.inactivityTimeout || defaults.inactivityTimeout);
262 return connection;
263 });
264
265 _this.ringBuffer.on('buffer shift', function () {
266 _this.debugLogger.log('Buffer is full, will be shifting records until buffer is drained.');
267 });
268 return _this;
269 }
270
271 (0, _createClass3.default)(Logger, [{
272 key: '_write',
273 value: function _write(ch, enc, cb) {
274 var _this3 = this;
275
276 this.connection.then(function (conn) {
277 var record = _this3.ringBuffer.read();
278 if (record) {
279 conn.write(record);
280
281 if (_this3.ringBuffer.isEmpty()) {
282 _this3.emit('buffer drain');
283
284 _this3.emit('connection drain');
285 }
286 } else {
287 _this3.debugLogger.log('This should not happen. Read from ringBuffer returned null.');
288 }
289 cb();
290 }).catch(function (err) {
291 _this3.emit('error', err);
292 _this3.debugLogger.log('Error: ' + err);
293 cb();
294 });
295 }
296 }, {
297 key: 'end',
298 value: function end() {
299 this.reconnection.disconnect();
300 (0, _get3.default)((0, _getPrototypeOf2.default)(Logger.prototype), 'end', this).apply(this, arguments);
301 }
302 }, {
303 key: 'setDefaultEncoding',
304 value: function setDefaultEncoding() {}
305 }, {
306 key: 'log',
307 value: function log(lvl, _log) {
308 var modifiedLevel = lvl;
309 var modifiedLog = _log;
310
311 if (modifiedLog === undefined) {
312 modifiedLog = modifiedLevel;
313 modifiedLevel = null;
314 }
315
316 var lvlName = void 0;
317
318 if (modifiedLevel || modifiedLevel === 0) {
319 var _toLevel = this.toLevel(modifiedLevel);
320
321 var _toLevel2 = (0, _slicedToArray3.default)(_toLevel, 2);
322
323 modifiedLevel = _toLevel2[0];
324 lvlName = _toLevel2[1];
325
326 if (!modifiedLevel && modifiedLevel !== 0) {
327 this.emit('error', new _error.LogentriesError(_text2.default.unknownLevel(modifiedLevel)));
328 return;
329 }
330
331 if (modifiedLevel < this.minLevel) {
332 return;
333 }
334 }
335
336 if (_lodash2.default.isArray(modifiedLog)) {
337 if (modifiedLog.length) {
338 var _iteratorNormalCompletion2 = true;
339 var _didIteratorError2 = false;
340 var _iteratorError2 = undefined;
341
342 try {
343 for (var _iterator2 = (0, _getIterator3.default)(modifiedLog), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
344 var $modifiedLog = _step2.value;
345 this.log(modifiedLevel, $modifiedLog);
346 }
347 } catch (err) {
348 _didIteratorError2 = true;
349 _iteratorError2 = err;
350 } finally {
351 try {
352 if (!_iteratorNormalCompletion2 && _iterator2.return) {
353 _iterator2.return();
354 }
355 } finally {
356 if (_didIteratorError2) {
357 throw _iteratorError2;
358 }
359 }
360 }
361 } else {
362 this.emit('error', new _error.LogentriesError(_text2.default.noLogMessage()));
363 }
364 return;
365 }
366
367 if (_lodash2.default.isObject(modifiedLog)) {
368 var safeTime = void 0;
369 var safeLevel = void 0;
370
371 if (this.timestamp) {
372 safeTime = getSafeProp(modifiedLog, 'time');
373 modifiedLog[safeTime] = new Date();
374 }
375
376 if (this.withLevel && lvlName) {
377 safeLevel = getSafeProp(modifiedLog, 'level');
378 modifiedLog[safeLevel] = lvlName;
379 }
380
381 modifiedLog = this._serialize(modifiedLog);
382
383 if (!modifiedLog) {
384 this.emit('error', new _error.LogentriesError(_text2.default.serializedEmpty()));
385 return;
386 }
387
388 if (this.console) {
389 console[getConsoleMethod(modifiedLevel)](JSON.parse(modifiedLog));
390 }
391
392 if (safeTime) delete modifiedLog[safeTime];
393 if (safeLevel) delete modifiedLog[safeLevel];
394 } else {
395 if (_lodash2.default.isEmpty(modifiedLog)) {
396 this.emit('error', new _error.LogentriesError(_text2.default.noLogMessage()));
397 return;
398 }
399
400 modifiedLog = [modifiedLog.toString()];
401
402 if (this.withLevel && lvlName) {
403 modifiedLog.unshift(lvlName);
404 }
405
406 if (this.timestamp) {
407 modifiedLog.unshift(new Date().toISOString());
408 }
409
410 modifiedLog = modifiedLog.join(' ');
411
412 if (this.console) {
413 console[getConsoleMethod(modifiedLevel)](modifiedLog);
414 }
415 }
416
417 this.emit('log', modifiedLog);
418
419 if (this.ringBuffer.write(finalizeLogString(modifiedLog, this.token))) {
420 this.write();
421 }
422 }
423 }, {
424 key: 'closeConnection',
425 value: function closeConnection() {
426 this.debugLogger.log('Closing retry mechanism along with its connection.');
427 if (!this.reconnection) {
428 return;
429 }
430
431 this.reconnection.disconnect();
432 }
433 }, {
434 key: 'toLevel',
435 value: function toLevel(val) {
436 var num = void 0;
437
438 if (levelUtil.isNumberValid(val)) {
439 num = parseInt(val, 10);
440 } else {
441 num = this.levels.indexOf(val);
442 }
443
444 var name = this.levels[num];
445
446 return name ? [num, name] : [];
447 }
448 }, {
449 key: 'level',
450 value: function level(name) {
451 console.warn(_text2.default.deprecatedLevelMethod());
452 if (~this.levels.indexOf(name)) this.minLevel = name;
453 }
454 }, {
455 key: 'reconnect',
456 get: function get() {
457 return this._reconnect;
458 },
459 set: function set(func) {
460 this._reconnect = func;
461 }
462 }, {
463 key: 'connection',
464 get: function get() {
465 var _this4 = this;
466
467 if (this._connection) {
468 return this._connection;
469 }
470
471 this.debugLogger.log('No connection exists. Creating a new one.');
472
473 if (this.reconnection) {
474 this.reconnection.disconnect();
475 this.reconnection = null;
476 }
477
478 this.reconnection = this.reconnect({
479 initialDelay: this.reconnectInitialDelay,
480 maxDelay: this.reconnectMaxDelay,
481 strategy: this.reconnectBackoffStrategy,
482 failAfter: Infinity,
483 randomisationFactor: 0,
484 immediate: false
485 });
486
487 this.connection = new _promise2.default(function (resolve) {
488 var connOpts = {
489 host: _this4.host,
490 port: _this4.port
491 };
492
493 _this4.reconnection.on('connect', function (connection) {
494 _this4.debugLogger.log('Connected');
495 _this4.emit('connected');
496 resolve(connection);
497
498 connection.on('timeout', function () {
499 _this4.debugLogger.log('Socket was inactive for ' + _this4.inactivityTimeout / 1000 + ' seconds. Destroying.');
500 _this4.closeConnection();
501 _this4.connection = null;
502 _this4.emit('timed out');
503 });
504 });
505
506 _this4.reconnection.on('reconnect', function (n, delay) {
507 if (n > 0) {
508 _this4.debugLogger.log('Trying to reconnect. Times: ' + n + ' , previous delay: ' + delay);
509 }
510 });
511
512 _this4.reconnection.once('disconnect', function () {
513 _this4.debugLogger.log('Socket was disconnected');
514 _this4.connection = null;
515 _this4.emit('disconnected');
516 });
517
518 _this4.reconnection.on('error', function (err) {
519 _this4.debugLogger.log('Error occurred during connection: ' + err);
520 });
521
522 _this4.reconnection.connect(connOpts);
523 });
524 return this.connection;
525 },
526 set: function set(obj) {
527 this._connection = obj;
528 }
529 }, {
530 key: 'reconnection',
531 get: function get() {
532 return this._reconnection;
533 },
534 set: function set(func) {
535 this._reconnection = func;
536 }
537 }, {
538 key: 'debugEnabled',
539 get: function get() {
540 return this._debugEnabled;
541 },
542 set: function set(val) {
543 this._debugEnabled = !!val;
544 }
545 }, {
546 key: 'debugLogger',
547 get: function get() {
548 return this._debugLogger;
549 },
550 set: function set(func) {
551 this._debugLogger = func;
552 }
553 }, {
554 key: 'ringBuffer',
555 get: function get() {
556 return this._ringBuffer;
557 },
558 set: function set(obj) {
559 this._ringBuffer = obj;
560 }
561 }, {
562 key: 'secure',
563 get: function get() {
564 return this._secure;
565 },
566 set: function set(val) {
567 this._secure = !!val;
568 }
569 }, {
570 key: 'token',
571 get: function get() {
572 return this._token;
573 },
574 set: function set(val) {
575 this._token = val;
576 }
577 }, {
578 key: 'bufferSize',
579 get: function get() {
580 return this._bufferSize;
581 },
582 set: function set(val) {
583 this._bufferSize = val;
584 }
585 }, {
586 key: 'console',
587 get: function get() {
588 return this._console;
589 },
590 set: function set(val) {
591 this._console = !!val;
592 }
593 }, {
594 key: 'serialize',
595 get: function get() {
596 return this._serialize;
597 },
598 set: function set(func) {
599 this._serialize = func;
600 }
601 }, {
602 key: 'flatten',
603 get: function get() {
604 return this._flatten;
605 },
606 set: function set(val) {
607 this._flatten = !!val;
608 this.serialize = (0, _serialize2.default)(this);
609 }
610 }, {
611 key: 'flattenArrays',
612 get: function get() {
613 return this._flattenArrays;
614 },
615 set: function set(val) {
616 this._flattenArrays = !!val;
617 this.serialize = (0, _serialize2.default)(this);
618 }
619 }, {
620 key: 'host',
621 get: function get() {
622 return this._host;
623 },
624 set: function set(val) {
625 if (!_lodash2.default.isString(val) || !val.length) {
626 this._host = defaults.host;
627 return;
628 }
629
630 var host = val.replace(/^https?:\/\//, '');
631
632 var url = _url2.default.parse('http://' + host);
633
634 this._host = url.hostname || defaults.host;
635
636 if (url.port) this.port = url.port;
637 }
638 }, {
639 key: 'json',
640 get: function get() {
641 return this._json;
642 },
643 set: function set(val) {
644 this._json = val;
645 }
646 }, {
647 key: 'reconnectMaxDelay',
648 get: function get() {
649 return this._reconnectMaxDelay;
650 },
651 set: function set(val) {
652 this._reconnectMaxDelay = val;
653 }
654 }, {
655 key: 'reconnectInitialDelay',
656 get: function get() {
657 return this._reconnectInitialDelay;
658 },
659 set: function set(val) {
660 this._reconnectInitialDelay = val;
661 }
662 }, {
663 key: 'reconnectBackoffStrategy',
664 get: function get() {
665 return this._reconnectBackoffStrategy;
666 },
667 set: function set(val) {
668 this._reconnectBackoffStrategy = val;
669 }
670 }, {
671 key: 'minLevel',
672 get: function get() {
673 return this._minLevel;
674 },
675 set: function set(val) {
676 var _toLevel3 = this.toLevel(val);
677
678 var _toLevel4 = (0, _slicedToArray3.default)(_toLevel3, 1);
679
680 var num = _toLevel4[0];
681
682
683 this._minLevel = _lodash2.default.isNumber(num) ? num : 0;
684 }
685 }, {
686 key: 'port',
687 get: function get() {
688 return this._port;
689 },
690 set: function set(val) {
691 var port = parseFloat(val);
692 if ((0, _isInteger2.default)(port) && _lodash2.default.inRange(port, 65536)) this._port = port;
693 }
694 }, {
695 key: 'replacer',
696 get: function get() {
697 return this._replacer;
698 },
699 set: function set(val) {
700 this._replacer = _lodash2.default.isFunction(val) ? val : undefined;
701 this.serialize = (0, _serialize2.default)(this);
702 }
703 }, {
704 key: 'inactivityTimeout',
705 get: function get() {
706 return this._inactivityTimeout;
707 },
708 set: function set(val) {
709 if ((0, _isInteger2.default)(val) && val >= 0) {
710 this._inactivityTimeout = parseInt(val, 10);
711 }
712
713 if (!_lodash2.default.isNumber(this._inactivityTimeout)) {
714 this._inactivityTimeout = defaults.inactivityTimeout;
715 }
716 }
717 }, {
718 key: 'timestamp',
719 get: function get() {
720 return this._timestamp;
721 },
722 set: function set(val) {
723 this._timestamp = !!val;
724 }
725 }, {
726 key: 'withLevel',
727 get: function get() {
728 return this._withLevel;
729 },
730 set: function set(val) {
731 this._withLevel = !!val;
732 }
733 }, {
734 key: 'withStack',
735 get: function get() {
736 return this._withStack;
737 },
738 set: function set(val) {
739 this._withStack = !!val;
740 this.serialize = (0, _serialize2.default)(this);
741 }
742 }, {
743 key: 'levels',
744 get: function get() {
745 return this._levels && this._levels.slice();
746 },
747 set: function set(val) {
748 this._levels = val;
749 }
750 }], [{
751 key: 'winston',
752 value: function winston() {
753 console.warn(_text2.default.deprecatedWinstonMethod());
754 }
755 }, {
756 key: 'provisionWinston',
757 value: function provisionWinston(winston) {
758 if (winston.transports.Logentries) return;
759
760 var Transport = winston.Transport;
761
762 var LogentriesTransport = function (_Transport) {
763 (0, _inherits3.default)(LogentriesTransport, _Transport);
764
765 function LogentriesTransport(opts) {
766 (0, _classCallCheck3.default)(this, LogentriesTransport);
767
768 var _this5 = (0, _possibleConstructorReturn3.default)(this, (0, _getPrototypeOf2.default)(LogentriesTransport).call(this, opts));
769
770 _this5.json = opts.json;
771
772 var transportOpts = _lodash2.default.clone(opts || {});
773
774 transportOpts.minLevel = transportOpts.minLevel || transportOpts.level || _this5.tempLevel || 0;
775
776 transportOpts.levels = transportOpts.levels || winston.levels;
777 if (_semver2.default.satisfies(winston.version, '>=2.0.0')) {
778 (function () {
779 var levels = transportOpts.levels;
780 var values = _lodash2.default.values(levels).reverse();
781 transportOpts.levels = {};
782 _lodash2.default.keys(levels).forEach(function (k, i) {
783 transportOpts.levels[k] = values[i];
784 });
785 })();
786 }
787
788 _this5.tempLevel = null;
789 _this5.logger = new Logger(transportOpts);
790 _this5.logger.on('error', function (err) {
791 return _this5.emit(err);
792 });
793 return _this5;
794 }
795
796 (0, _createClass3.default)(LogentriesTransport, [{
797 key: 'log',
798 value: function log(lvl, msg, meta, cb) {
799 if (this.json) {
800 var message = {
801 message: msg
802 };
803 if (!_lodash2.default.isEmpty(meta)) {
804 if (_lodash2.default.isObject(meta)) {
805 _lodash2.default.defaults(message, meta);
806 } else {
807 message.meta = meta;
808 }
809 }
810
811 this.logger.log(lvl, message);
812 } else {
813 var _message = msg;
814 if (!_lodash2.default.isEmpty(meta)) {
815 if (_lodash2.default.isString(_message)) {
816 _message += ' ' + this.logger.serialize(meta);
817 } else if (_lodash2.default.isObject(_message)) {
818 _message[getSafeProp(_message, 'meta')] = meta;
819 }
820 }
821
822 this.logger.log(lvl, _message);
823 }
824
825 (0, _setImmediate3.default)(cb.bind(null, null, true));
826 }
827 }, {
828 key: 'tempLevel',
829 get: function get() {
830 return this._tempLevel;
831 },
832 set: function set(val) {
833 this._tempLevel = val;
834 }
835 }, {
836 key: 'logger',
837 get: function get() {
838 return this._logger;
839 },
840 set: function set(obj) {
841 this._logger = obj;
842 }
843 }, {
844 key: 'level',
845 get: function get() {
846 var _logger$toLevel = this.logger.toLevel(this.logger.minLevel);
847
848 var _logger$toLevel2 = (0, _slicedToArray3.default)(_logger$toLevel, 2);
849
850 var lvlName = _logger$toLevel2[1];
851
852 return lvlName;
853 },
854 set: function set(val) {
855 if (!this.logger) {
856 this.tempLevel = val;
857 } else {
858 this.logger.minLevel = val;
859 }
860 }
861 }, {
862 key: 'levels',
863 get: function get() {
864 return this.logger.levels.reduce(function (acc, lvlName, lvlNum) {
865 var newAcc = acc;
866 newAcc[lvlName] = lvlNum;
867 return newAcc;
868 }, {});
869 }
870 }], [{
871 key: 'name',
872 get: function get() {
873 return 'logentries';
874 }
875 }]);
876 return LogentriesTransport;
877 }(Transport);
878
879 winston.transports.Logentries = LogentriesTransport;
880 }
881 }, {
882 key: 'bunyanStream',
883 value: function bunyanStream(opts) {
884 var stream = new _bunyanstream2.default(opts);
885
886 var _stream$logger$toLeve = stream.logger.toLevel(stream.logger.minLevel);
887
888 var _stream$logger$toLeve2 = (0, _slicedToArray3.default)(_stream$logger$toLeve, 2);
889
890 var level = _stream$logger$toLeve2[1];
891
892 var type = 'raw';
893 var name = 'logentries';
894
895 stream.logger.minLevel = 0;
896
897 return { level: level, name: name, stream: stream, type: type };
898 }
899 }]);
900 return Logger;
901}(_stream.Writable);
902
903var winston = requirePeer('winston', { optional: true });
904
905if (winston) Logger.provisionWinston(winston);
906
907var winston1 = requirePeer('winston1', { optional: true });
908var winston2 = requirePeer('winston2x', { optional: true });
909
910if (winston1) Logger.provisionWinston(winston1);
911if (winston2) Logger.provisionWinston(winston2);
912
913var errorEvent = 'error';
914var logEvent = 'log';
915var connectedEvent = 'connected';
916var disconnectedEvent = 'disconnected';
917var timeoutEvent = 'timed out';
918var drainWritableEvent = 'drain';
919var finishWritableEvent = 'finish';
920var pipeWritableEvent = 'pipe';
921var unpipeWritableEvent = 'unpipe';
922var bufferDrainEvent = 'buffer drain';
923
924exports.default = Logger;
925exports.errorEvent = errorEvent;
926exports.logEvent = logEvent;
927exports.connectedEvent = connectedEvent;
928exports.disconnectedEvent = disconnectedEvent;
929exports.timeoutEvent = timeoutEvent;
930exports.drainWritableEvent = drainWritableEvent;
931exports.finishWritableEvent = finishWritableEvent;
932exports.pipeWritableEvent = pipeWritableEvent;
933exports.unpipeWritableEvent = unpipeWritableEvent;
934exports.bufferDrainEvent = bufferDrainEvent;
935module.exports = exports['default'];
936//# sourceMappingURL=logger.js.map