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