• Jump To … +
    ClientController.js ClientRequest.js ExpressServerRequest.js ReactServerAgent.js Cache.js Plugins.js Request.js handlePage.js loggingClient.js ClientRequestSpec.js NormalValuesPage.js NullValuePromisesPage.js NullValuesPage.js reactMiddlewareSpec.js client.js common.js History.js RootContainer.js RootElement.js TheFold.js config.js constants.js Navigator.js RequestContext.js logging.js client.js common.js response.js server.js stats.js renderMiddleware.js server.js ClientCssHelper.js DebugUtil.js PageUtil.js RequestLocalStorage.js StringEscapeUtil.js bundleNameUtil.js navigateTo.js
  • loggingClient.js

  • ¶
    import {Suite} from "benchmark";
    import logging from "../logging/client";
    
    const n = 1000;
    
    let enclosedDeferred;
    
    class NoopTransport {
    	constructor() {
    		this.name = 'noop';
    		this.level = 'info';
    	}
    
    	log(level, msg, meta, callback) {
    		if (meta === n || meta.ms === n) {
    			enclosedDeferred.resolve();
    		}
    		callback(null, true);
    	}
    }
    
    class NoopTimeTransport extends NoopTransport {
    	constructor() {
    		super();
    		this.level = 'fast';
    	}
    }
    
    const noTransportLogger   = logging.getLogger({name: "noTransports"});
    const noopTransportLogger = logging.getLogger({name: "noopTransport"});
    
    noopTransportLogger.add(NoopTransport)
    noopTransportLogger.timeLogger.add(NoopTimeTransport)
    
    function run(logger, method) {
    	return function(deferred) {
    		enclosedDeferred = deferred;
    		for (var i = 1; i <= n; i++) {
    			logger[method]("test", i);
    		}
    	}
    }
    
    new Suite()
    	.add("info no transports",  run(noTransportLogger,   'info'))
    	.add("info noop transport", run(noopTransportLogger, 'info'), { defer: true })
    	.add("time no transports",  run(noTransportLogger,   'time'))
    	.add("time noop transport", run(noopTransportLogger, 'time'), { defer: true })
    	.on('cycle', (v) => console.log(v.target.name + "\t" + v.target.stats.mean)) // eslint-disable-line no-console
    	.run();