123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- var noop = exports.noop = function(){};
- exports.extend = function extend(dest, source) {
- for (var prop in source) {
- dest[prop] = source[prop];
- }
- };
- exports.eventEmitterListenerCount =
- require('events').EventEmitter.listenerCount ||
- function(emitter, type) { return emitter.listeners(type).length; };
- exports.bufferAllocUnsafe = Buffer.allocUnsafe ?
- Buffer.allocUnsafe :
- function oldBufferAllocUnsafe(size) { return new Buffer(size); };
- exports.bufferFromString = Buffer.from ?
- Buffer.from :
- function oldBufferFromString(string, encoding) {
- return new Buffer(string, encoding);
- };
- exports.BufferingLogger = function createBufferingLogger(identifier, uniqueID) {
- var logFunction = require('debug')(identifier);
- if (logFunction.enabled) {
- var logger = new BufferingLogger(identifier, uniqueID, logFunction);
- var debug = logger.log.bind(logger);
- debug.printOutput = logger.printOutput.bind(logger);
- debug.enabled = logFunction.enabled;
- return debug;
- }
- logFunction.printOutput = noop;
- return logFunction;
- };
- function BufferingLogger(identifier, uniqueID, logFunction) {
- this.logFunction = logFunction;
- this.identifier = identifier;
- this.uniqueID = uniqueID;
- this.buffer = [];
- }
- BufferingLogger.prototype.log = function() {
- this.buffer.push([ new Date(), Array.prototype.slice.call(arguments) ]);
- return this;
- };
- BufferingLogger.prototype.clear = function() {
- this.buffer = [];
- return this;
- };
- BufferingLogger.prototype.printOutput = function(logFunction) {
- if (!logFunction) { logFunction = this.logFunction; }
- var uniqueID = this.uniqueID;
- this.buffer.forEach(function(entry) {
- var date = entry[0].toLocaleString();
- var args = entry[1].slice();
- var formatString = args[0];
- if (formatString !== (void 0) && formatString !== null) {
- formatString = '%s - %s - ' + formatString.toString();
- args.splice(0, 1, formatString, date, uniqueID);
- logFunction.apply(global, args);
- }
- });
- };
|