/** * * @param {object} bindings */ getLogHandler(bindings) { let level = bindings ? this.getLogLevel(bindings.mod) : null; if (!level) return null; const logger = isFunction(this.opts.createLogger) ? this.opts.createLogger(level, bindings) : this.bunyan.child({ level, ...bindings }); return (type, args) => logger[type](...args); }
bench([ function benchBunyanChildChild (cb) { for (var i = 0; i < max; i++) { blog.info({ hello: 'world' }) } setImmediate(cb) }, function benchPinoChildChild (cb) { for (var i = 0; i < max; i++) { plogDest.info({ hello: 'world' }) } setImmediate(cb) }, function benchPinoAsyncChildChild (cb) { for (var i = 0; i < max; i++) { plogAsync.info({ hello: 'world' }) } setImmediate(cb) }, function benchPinoNodeStreamChildChild (cb) { for (var i = 0; i < max; i++) { plogNodeStream.info({ hello: 'world' }) } setImmediate(cb) } ], 10000)
expect(Bunyan.createLogger).toHaveBeenCalledTimes(1); expect(Bunyan.createLogger).toHaveBeenCalledWith({ name: "moleculer" }); Bunyan.createLogger.mockClear(); const logger = new BunyanLogger({ a: 5, expect(Bunyan.createLogger).toHaveBeenCalledTimes(1); expect(Bunyan.createLogger).toHaveBeenCalledWith({ name: "my-app" });
bench([ function benchBunyanInterpolate (cb) { for (var i = 0; i < max; i++) { blog.info('hello %s', 'world') function benchBunyanInterpolateAll (cb) { for (var i = 0; i < max; i++) { blog.info('hello %s %j %d', 'world', { obj: true }, 4) function benchBunyanInterpolateExtra (cb) { for (var i = 0; i < max; i++) { blog.info('hello %s %j %d', 'world', { obj: true }, 4, { another: 'obj' }) function benchBunyanInterpolateDeep (cb) { for (var i = 0; i < max; i++) { blog.info('hello %j', deep)
bench([ function benchBunyan (cb) { for (var i = 0; i < max; i++) { blog.info('hello world')
// private functions function generateFilename(image) { try { // sometime at intial bootup, seeding is not available. // crypto sync version is comparable to async in perf as bytes are much smaller. return crypto.randomBytes(12).toString('hex') + image.originalName; } catch(e) { log.warn(e, 'Failed to generate filename via crypto.randomBytes.'); return Date.now() + image.originalName; } }
function uploadToGCS(buf, res, gcsStream) { const rs = utils.createReadStream(buf); rs.pipe(gcsStream); rs.on('error', (err) => { log.error(err, 'Error uploading to Google Cloud Storage after compression'); return errors.internalServer(res); }) }
// catch-all error for routes. router.use((err, req, res, next) => { if(err && err.code === 'LIMIT_FILE_SIZE') { log.warn(err, 'Attempt to access api with greater file size'); return errors.entityTooLarge(res); } else { log.warn({req: req, res: res, err: err}, 'Catch all router error'); return next(); } });
log.warn(err, 'Error into getting url. Route: /dl/:id'); return errors.internalServer(res); })
bench([ function benchBunyan (cb) { for (var i = 0; i < max; i++) { blog.info(longStr)
bench([ function benchBunyanDeepObj (cb) { for (var i = 0; i < max; i++) { blog.info(deep)
bench([ function benchBunyanChild (cb) { for (var i = 0; i < max; i++) { blog.info({ hello: 'world' })
bench([ function benchBunyanObj (cb) { for (var i = 0; i < max; i++) { blog.info({ hello: 'world' })