jenkins-bot has submitted this change and it was merged.

Change subject: Use the process logger in the service
......................................................................


Use the process logger in the service

Change-Id: Ie2dff208a4fbad0b00216882c1fcbc015a4101c2
---
M api/ParsoidService.js
M api/server.js
M lib/ParsoidLogger.js
3 files changed, 72 insertions(+), 64 deletions(-)

Approvals:
  Subramanya Sastry: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/api/ParsoidService.js b/api/ParsoidService.js
index af8ccda..71ba535 100644
--- a/api/ParsoidService.js
+++ b/api/ParsoidService.js
@@ -10,17 +10,13 @@
        hbs = require('handlebars'),
        cluster = require('cluster'),
        path = require('path'),
+       util = require('util'),
        uuid = require('node-uuid').v4,
        Buffer = require('buffer').Buffer;
 
 
-function ParsoidService( parsoidConfig ) {
-
-       var instanceName = cluster.isWorker
-               ? 'worker(' + process.pid + ')'
-               : 'master';
-
-       console.log( " - %s loading ...", instanceName );
+function ParsoidService( parsoidConfig, processLogger ) {
+       processLogger.log( "info", "loading ..." );
 
        // Load routes
        var routes = require('./routes')( parsoidConfig );
@@ -63,10 +59,10 @@
        // Catch errors
        app.on('error', function( err ) {
                if ( err.errno === "EADDRINUSE" ) {
-                       console.error( "Port %d is already in use. Exiting.", 
port );
+                       processLogger.log( "error", util.format( "Port %d is 
already in use. Exiting.", port ) );
                        cluster.worker.disconnect();
                } else {
-                       console.error( err.message );
+                       processLogger.log( "error", err );
                }
        });
 
@@ -112,7 +108,7 @@
 
        app.listen( port, host );
 
-       console.log( " - %s ready on %s:%s", instanceName, host || "", port );
+       processLogger.log( "info", util.format( "ready on %s:%s", host || "", 
port ) );
 }
 
 module.exports = {
diff --git a/api/server.js b/api/server.js
index e9a4897..1613691 100755
--- a/api/server.js
+++ b/api/server.js
@@ -24,37 +24,49 @@
 var cluster = require('cluster'),
        path = require('path'),
        util = require('util'),
-       fs = require('fs'),
-       // process arguments
-       opts = require( "yargs" )
-               .usage( "Usage: $0 [-h|-v] [--param[=val]]" )
-               .default({
+       fs = require('fs');
 
-                       // Start a few more workers than there are cpus visible 
to the OS,
-                       // so that we get some degree of parallelism even on 
single-core
-                       // systems. A single long-running request would 
otherwise hold up
-                       // all concurrent short requests.
-                       n: require( "os" ).cpus().length + 3,
-                       c: __dirname + '/localsettings.js',
+// process arguments
+var opts = require( "yargs" )
+       .usage( "Usage: $0 [-h|-v] [--param[=val]]" )
+       .default({
+               // Start a few more workers than there are cpus visible to the 
OS,
+               // so that we get some degree of parallelism even on single-core
+               // systems. A single long-running request would otherwise hold 
up
+               // all concurrent short requests.
+               n: require( "os" ).cpus().length + 3,
+               c: __dirname + '/localsettings.js',
+               v: false,
+               h: false
+       })
+       .boolean( [ "h", "v" ] )
+       .alias( "h", "help" )
+       .alias( "v", "version" )
+       .alias( "c", "config" )
+       .alias( "n", "num-workers" );
 
-                       v: false,
-                       h: false
+// Help
+var argv = opts.argv;
+if ( argv.h ) {
+       opts.showHelp();
+       process.exit( 0 );
+}
 
-               })
-               .boolean( [ "h", "v" ] )
-               .alias( "h", "help" )
-               .alias( "v", "version" )
-               .alias( "c", "config" )
-               .alias( "n", "num-workers" ),
-       argv = opts.argv;
-
+// Version
+var meta = require( path.join( __dirname, "../package.json" ) );
+if ( argv.v ) {
+       console.log( meta.name + " " + meta.version );
+       process.exit( 0 );
+}
 
 var ParsoidService = require("./ParsoidService.js").ParsoidService,
        ParsoidConfig = require("../lib/mediawiki.ParsoidConfig").ParsoidConfig,
-       ParsoidLogger = require("../lib/ParsoidLogger.js").ParsoidLogger,
-       Logger = require("../lib/Logger.js").Logger;
+       Logger = require("../lib/Logger.js").Logger,
+       PLogger = require("../lib/ParsoidLogger.js"),
+       ParsoidLogger = PLogger.ParsoidLogger,
+       ParsoidLogData = PLogger.ParsoidLogData;
 
-// The global parsoid configuration object.
+// The global parsoid configuration object
 var lsp = path.resolve( process.cwd(), argv.c ), localSettings;
 try {
        localSettings = require( lsp );
@@ -65,32 +77,29 @@
        );
        process.exit( 1 );
 }
+
 var parsoidConfig = new ParsoidConfig( localSettings, null );
-
-
-if (cluster.isMaster && argv.n > 0) {
-
-       var meta = require( path.join( __dirname, "../package.json" ) );
-
-       // help
-       if ( argv.h ) {
-               opts.showHelp();
-               process.exit( 0 );
+var locationData = {
+       isMaster: cluster.isMaster,
+       toString: function() {
+               return util.format(
+                       "[%s][%s]", this.isMaster ? "master" : "worker", 
process.pid
+               );
        }
+};
 
-       // version
-       if ( argv.v ) {
-               console.log( meta.name + " " + meta.version );
-               process.exit( 0 );
-       }
+// Setup process logger
+var logger = new Logger();
+logger._createLogData = function( logType, logObject ) {
+       return new ParsoidLogData( logType, logObject, locationData );
+};
+logger._defaultBackend = ParsoidLogger.prototype._defaultBackend;
+ParsoidLogger.prototype.registerLoggingBackends.call(
+       logger, [ "fatal", "error", "warning", "info" ], ParsoidConfig
+);
 
-       // setup logger for master
-       var logger = new Logger();
-       ParsoidLogger.prototype.registerLoggingBackends.call(
-               logger,
-               [ "fatal", "error", "warning", "info" ],
-               ParsoidConfig
-       );
+if ( cluster.isMaster && argv.n > 0 ) {
+       // Master
 
        var timeoutHandler, timeouts = new Map();
        var spawn = function() {
@@ -119,9 +128,9 @@
                }
        };
 
-       // Fork workers.
+       // Fork workers
        var worker;
-       logger.log( "info", util.format( "master(%s) initializing %s workers", 
process.pid, argv.n ) );
+       logger.log( "info", util.format( "initializing %s workers", argv.n ) );
        for (var i = 0; i < argv.n; i++) {
                spawn();
        }
@@ -135,9 +144,9 @@
        });
 
        var shutdown_master = function() {
-               logger.log( "info", "master shutting down, killing workers" );
+               logger.log( "info", "shutting down, killing workers" );
                cluster.disconnect(function() {
-                       logger.log( "info", "Exiting master" );
+                       logger.log( "info", "exiting" );
                        process.exit(0);
                });
        };
@@ -146,9 +155,10 @@
        process.on('SIGTERM', shutdown_master);
 
 } else {
-       // Worker.
+       // Worker
+
        process.on('SIGTERM', function() {
-               console.log('Worker ' + process.pid + ' shutting down');
+               logger.log( "warning", "shutting down" );
                process.exit(0);
        });
 
@@ -158,10 +168,11 @@
        // For 0.10: npm install heapdump
        process.on('SIGUSR2', function() {
                var heapdump = require('heapdump');
-               console.error('SIGUSR2 received! Writing snapshot.');
+               logger.log( "warning", "SIGUSR2 received! Writing snapshot." );
                process.chdir('/tmp');
                heapdump.writeSnapshot();
        });
 
-       var app = new ParsoidService( parsoidConfig );
+       var app = new ParsoidService( parsoidConfig, logger );
+
 }
diff --git a/lib/ParsoidLogger.js b/lib/ParsoidLogger.js
index a649385..75dafac 100644
--- a/lib/ParsoidLogger.js
+++ b/lib/ParsoidLogger.js
@@ -187,4 +187,5 @@
 
 if (typeof module === "object") {
        module.exports.ParsoidLogger = ParsoidLogger;
+       module.exports.ParsoidLogData = ParsoidLogData;
 }

-- 
To view, visit https://gerrit.wikimedia.org/r/169273
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ie2dff208a4fbad0b00216882c1fcbc015a4101c2
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/services/parsoid
Gerrit-Branch: master
Gerrit-Owner: Arlolra <[email protected]>
Gerrit-Reviewer: Cscott <[email protected]>
Gerrit-Reviewer: Marcoil <[email protected]>
Gerrit-Reviewer: Subramanya Sastry <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to