Mwalker has uploaded a new change for review. https://gerrit.wikimedia.org/r/151224
Change subject: Unify logging through the service wrapper ...................................................................... Unify logging through the service wrapper Basically, log everything through winston Updates to bundler / latexer: - https://gerrit.wikimedia.org/r/#/c/151215 - https://gerrit.wikimedia.org/r/#/c/151222 Change-Id: I2dcb3d8d45d010915c0e636acaa4ea2c9c017af6 --- M lib/threads/backend.js 1 file changed, 60 insertions(+), 28 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Collection/OfflineContentGenerator refs/changes/24/151224/1 diff --git a/lib/threads/backend.js b/lib/threads/backend.js index b5b39d8..e2e4ab8 100644 --- a/lib/threads/backend.js +++ b/lib/threads/backend.js @@ -311,6 +311,64 @@ } /** + * Process a received child process message + * + * @param message The message object + * @param jobDetails The current job details context + * @param part What child process ( bundler / renderer ) + */ +function processReceivedMessage( message, jobDetails, part ) { + var logPrefix, jdUpdateFn; + if ( part === 'bundler' ) { + logPrefix = 'backend.bundler.bin'; + jdUpdateFn = jobDetails.updateBundling; + } else if ( part === 'renderer' ) { + logPrefix = 'backend.renderer.bin'; + jdUpdateFn = jobDetails.updateRendering; + } + if ( message.type === 'status' ) { + jdUpdateFn.call( + jobDetails, + message.message.file, message.message.status, message.message.percent + ); + redisClient + .hset( config.redis.status_set_name, + jobDetails.collectionId, + JSON.stringify( jobDetails ) + ).catch( function ( err ) { + console.warn( "Could not report status to client: " + err, { + channel: logPrefix + '.error', + error: eh.jsonify( err ), + job: { id: jobDetails.collectionId, writer: jobDetails.writer } + } ); + } ); + } else if ( message.type === 'log' ) { + var msglevel = message.level || 'info'; + // Add some metadata, have to see if the received message + // already has it though + if ( typeof( message.message[ message.message.length - 1 ] ) === "object" ) { + message.message[ message.message.length - 1 ].channel = logPrefix; + message.message[ message.message.length - 1 ].job = { + id: jobDetails.collectionId, writer: jobDetails.writer + }; + } else { + message.message.push( { + channel: logPrefix, + job: { id: jobDetails.collectionId, writer: jobDetails.writer } + } ); + } + console[msglevel].apply( console, message.message ); + } else { + console.error( '%s emitted message with unknown type', part, { + channel: logPrefix + '.error', + error: eh.jsonify( err ), + job: { id: jobDetails.collectionId, writer: jobDetails.writer }, + rxmsg: message + } ); + } +} + +/** * Fork the bundler process and resolve the promise when done * * @param jobDetails @@ -336,7 +394,6 @@ child = child_process.fork( config.backend.bundler.bin, [ '--no-compat', - '--syslog', '-p', config.backend.bundler.parsoid_prefix, '-a', config.backend.bundler.parsoid_api, '-m', metabookPath, @@ -353,19 +410,7 @@ ); } ); child.on( 'message', function ( message, handle ) { - jobDetails.updateBundling( message.file, message.status, message.percent ); - redisClient - .hset( config.redis.status_set_name, - jobDetails.collectionId, - JSON.stringify( jobDetails ) - ) - .catch(function( err ) { - console.warn( "Could not report status to client: " + err, { - channel: 'backend.bundler.error', - error: eh.jsonify( err ), - job: { id: jobDetails.collectionId, writer: jobDetails.writer } - } ); - } ); + processReceivedMessage( message, jobDetails, 'bundler' ); } ); child.on( 'exit', function ( code, signal ) { if ( killTimer ) { @@ -450,7 +495,6 @@ } ); child = child_process.fork( config.backend.writers[writer].bin, [ - '--syslog', '-T', renderTempDir, '-o', renderFile ].concat( @@ -468,19 +512,7 @@ ); } ); child.on( 'message', function ( message, handle ) { - jobDetails.updateRendering( message.file, message.status, message.percent ); - redisClient - .hset( config.redis.status_set_name, - jobDetails.collectionId, - JSON.stringify( jobDetails ) - ) - .catch( function( err ) { - console.warn( "Could not report status to client: " + err, { - channel: 'backend.renderer.error', - error: eh.jsonify( err ), - job: { id: jobDetails.collectionId, writer: jobDetails.writer } - } ); - } ); + processReceivedMessage( message, jobDetails, 'renderer' ); } ); child.on( 'exit', function ( code, signal ) { if ( killTimer ) { -- To view, visit https://gerrit.wikimedia.org/r/151224 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I2dcb3d8d45d010915c0e636acaa4ea2c9c017af6 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/Collection/OfflineContentGenerator Gerrit-Branch: master Gerrit-Owner: Mwalker <mwal...@khaosdev.com> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits