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

Change subject: Use our logger in the cluster master
......................................................................


Use our logger in the cluster master

Change-Id: Idb96381058880d0a6a4441c2e88db26032f78dfd
---
M api/ParsoidService.js
M api/server.js
M lib/ParsoidLogger.js
3 files changed, 40 insertions(+), 28 deletions(-)

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



diff --git a/api/ParsoidService.js b/api/ParsoidService.js
index aabad8b..af8ccda 100644
--- a/api/ParsoidService.js
+++ b/api/ParsoidService.js
@@ -13,21 +13,14 @@
        uuid = require('node-uuid').v4,
        Buffer = require('buffer').Buffer;
 
-// relative includes
-var mp = '../lib/',
-       ParsoidConfig = require( mp + 'mediawiki.ParsoidConfig' ).ParsoidConfig;
 
-
-function ParsoidService(options) {
+function ParsoidService( parsoidConfig ) {
 
        var instanceName = cluster.isWorker
                ? 'worker(' + process.pid + ')'
                : 'master';
 
        console.log( " - %s loading ...", instanceName );
-
-       // The global parsoid configuration object.
-       var parsoidConfig = new ParsoidConfig( options, null );
 
        // Load routes
        var routes = require('./routes')( parsoidConfig );
diff --git a/api/server.js b/api/server.js
index c0a106d..e9a4897 100755
--- a/api/server.js
+++ b/api/server.js
@@ -23,6 +23,8 @@
 
 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]]" )
@@ -46,10 +48,29 @@
                .alias( "n", "num-workers" ),
        argv = opts.argv;
 
+
+var ParsoidService = require("./ParsoidService.js").ParsoidService,
+       ParsoidConfig = require("../lib/mediawiki.ParsoidConfig").ParsoidConfig,
+       ParsoidLogger = require("../lib/ParsoidLogger.js").ParsoidLogger,
+       Logger = require("../lib/Logger.js").Logger;
+
+// The global parsoid configuration object.
+var lsp = path.resolve( process.cwd(), argv.c ), localSettings;
+try {
+       localSettings = require( lsp );
+} catch( e ) {
+       console.error(
+               "Cannot load local settings from %s. Please see: %s",
+               lsp, path.join( __dirname, "localsettings.js.example" )
+       );
+       process.exit( 1 );
+}
+var parsoidConfig = new ParsoidConfig( localSettings, null );
+
+
 if (cluster.isMaster && argv.n > 0) {
-       var fs = require( "fs" ),
-               path = require( "path" ),
-               meta = require( path.join( __dirname, "../package.json" ) );
+
+       var meta = require( path.join( __dirname, "../package.json" ) );
 
        // help
        if ( argv.h ) {
@@ -62,6 +83,14 @@
                console.log( meta.name + " " + meta.version );
                process.exit( 0 );
        }
+
+       // setup logger for master
+       var logger = new Logger();
+       ParsoidLogger.prototype.registerLoggingBackends.call(
+               logger,
+               [ "fatal", "error", "warning", "info" ],
+               ParsoidConfig
+       );
 
        var timeoutHandler, timeouts = new Map();
        var spawn = function() {
@@ -82,7 +111,7 @@
                        timeouts.set(msg.reqId, setTimeout(function() {
                                timeouts.delete( msg.reqId );
                                if ( worker.id in cluster.workers ) {
-                                       console.log("Cpu timeout; killing 
worker %s.", pid);
+                                       logger.log( "warning", util.format( 
"Cpu timeout; killing worker %s.", pid ) );
                                        worker.kill();
                                        spawn();
                                }
@@ -92,7 +121,7 @@
 
        // Fork workers.
        var worker;
-       console.log('master(%s) initializing %s workers', process.pid, argv.n);
+       logger.log( "info", util.format( "master(%s) initializing %s workers", 
process.pid, argv.n ) );
        for (var i = 0; i < argv.n; i++) {
                spawn();
        }
@@ -100,15 +129,15 @@
        cluster.on('exit', function(worker, code, signal) {
                if ( !worker.suicide ) {
                        var pid = worker.process.pid;
-                       console.log('worker %s died (%s), restarting.', pid, 
code);
+                       logger.log( "warning", util.format( "worker %s died 
(%s), restarting.", pid, code ) );
                        spawn();
                }
        });
 
        var shutdown_master = function() {
-               console.log('master shutting down, killing workers');
+               logger.log( "info", "master shutting down, killing workers" );
                cluster.disconnect(function() {
-                       console.log('Exiting master');
+                       logger.log( "info", "Exiting master" );
                        process.exit(0);
                });
        };
@@ -134,15 +163,5 @@
                heapdump.writeSnapshot();
        });
 
-       var ParsoidService = require('./ParsoidService.js').ParsoidService,
-               app;
-
-       try {
-               var lsp = path.resolve( process.cwd(), argv.c );
-               app = new ParsoidService(require( lsp ));
-       } catch ( e ) {
-               console.error(e);
-               // Build a skeleton localSettings to prevent errors later.
-               app = new ParsoidService({setup: function ( conf ) {}});
-       }
+       var app = new ParsoidService( parsoidConfig );
 }
diff --git a/lib/ParsoidLogger.js b/lib/ParsoidLogger.js
index dda76f4..5d57fd7 100644
--- a/lib/ParsoidLogger.js
+++ b/lib/ParsoidLogger.js
@@ -71,7 +71,7 @@
                
this.registerBackend(buildTraceOrDebugFlag(parsoidConfig.debugFlags, "debug"),
                        tracerBackend);
        }
-       if (parsoidConfig.linting){
+       if (linter && parsoidConfig.linting){
                this.registerBackend(/lint(\/.*)?/, 
linter.linterBackend.bind(linter));
                this.registerBackend(/end(\/.*)/, 
linter.logLintOutput.bind(linter));
        }

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

Gerrit-MessageType: merged
Gerrit-Change-Id: Idb96381058880d0a6a4441c2e88db26032f78dfd
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