Cscott has uploaded a new change for review.
https://gerrit.wikimedia.org/r/108729
Change subject: Only log to syslog when --syslog CLI option is passed.
......................................................................
Only log to syslog when --syslog CLI option is passed.
This avoids spamming syslog during development.
We also switch to using the same node-syslog infrastructure as
mw-ocg-latexer, ensuring (for instance) that we log all status information
even when neither -D nor --verbose is passed on the command line.
Change-Id: I7fa067c8991b4a71d44d49082df35f3dfa46dd98
---
M bin/mw-ocg-bundler
M lib/index.js
M package.json
3 files changed, 42 insertions(+), 16 deletions(-)
git pull
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Collection/OfflineContentGenerator/bundler
refs/changes/29/108729/1
diff --git a/bin/mw-ocg-bundler b/bin/mw-ocg-bundler
index bb3a726..24dd2aa 100755
--- a/bin/mw-ocg-bundler
+++ b/bin/mw-ocg-bundler
@@ -6,7 +6,7 @@
var bundler = require('../');
var fs = require('fs');
var when = require('when');
-require('rconsole');
+var util = require('util');
var P = require('../lib/p');
@@ -41,7 +41,9 @@
.option('-v, --verbose',
'Print verbose progress information')
.option('-D, --debug',
- 'Turn on debugging features (eg, full stack traces on
exceptions)');
+ 'Turn on debugging features (eg, full stack traces on
exceptions)')
+ .option('--syslog',
+ 'Log errors using syslog (for production deployments)');
program.on('--help', function() {
console.log(' If -o is omitted, creates bundle.zip');
console.log(' The -m option can be used instead of specifying titles');
@@ -62,6 +64,28 @@
console.error('Too many arguments.');
return 1;
}
+
+var Syslog = program.syslog ? require('node-syslog') : {
+ init: function() { },
+ log: function() { },
+ close: function() { }
+};
+Syslog.init(bundler.name, Syslog.LOG_PID | Syslog.LOG_ODELAY,
+ Syslog.LOG_LOCAL0);
+
+var log = function() {
+ // en/disable log messages here
+ if (program.verbose || program.debug) {
+ console.error.apply(console, arguments);
+ }
+ try {
+ Syslog.log(Syslog.LOG_INFO, util.format.apply(this, arguments));
+ } catch (err) {
+ // This should never happen! But don't try to convert arguments
+ // toString() if it does, since that might fail too.
+ Syslog.log(Syslog.LOG_ERR, "Could not format message! "+err);
+ }
+};
var p = when.resolve();
@@ -95,23 +119,27 @@
return bundler.bundle(metabook, {
nozip: !!program.directory,
output: program.directory || program.output,
- verbose: !!program.verbose,
debug: !!program.debug,
compat: !!program.compat, // pediapress compatibility
follow: !!program.follow, // follow redirects
parsoid: program.api,
toc: program.toc,
- size: program.size
+ size: program.size,
+ log: log
});
}).then(function(status) {
+ Syslog.close();
process.exit(status);
});
p.done(null, function(err) {
if (program.debug && err.stack) {
console.error(err.stack);
+ Syslog.log(Syslog.LOG_ERR, err.stack);
} else {
console.error(err);
+ Syslog.log(Syslog.LOG_ERR, err);
}
+ Syslog.close();
process.exit(1);
});
diff --git a/lib/index.js b/lib/index.js
index 3aa6e7d..95e115d 100644
--- a/lib/index.js
+++ b/lib/index.js
@@ -1,5 +1,7 @@
require('es6-shim'); // Map/Set support
+var json = require('../package.json');
+
var fs = require('fs');
var path = require('path');
var rimraf = require('rimraf');
@@ -24,7 +26,8 @@
var MAX_REDIRECTS = 5;
module.exports = {
- version: require('../package.json').version
+ name: json.name, // package name
+ version: json.version // version # for this package
};
// allow access to the metabook creation/repair functions
@@ -32,16 +35,11 @@
// returns a promise to create the given bundle
module.exports.bundle = function(metabook, options) {
-
- var log = function() {
- if (options.verbose || options.debug) {
- console.error.apply(console, arguments);
- }
- };
-
var status = options.status = new StatusReporter(5, function(msg) {
- var file = msg.file ? (': ' + msg.file) : '';
- log('['+msg.percent.toFixed()+'%]', msg.status + file);
+ if (options.log) {
+ var file = msg.file ? (': ' + msg.file) : '';
+ options.log('['+msg.percent.toFixed()+'%]', msg.status
+ file);
+ }
});
diff --git a/package.json b/package.json
index 57de885..bbbebd3 100644
--- a/package.json
+++ b/package.json
@@ -15,12 +15,12 @@
"commander": "~2.1.0",
"domino": "~1.0.13",
"es6-shim": "~0.9.1",
+ "node-syslog": "~1.1.7",
"request": "~2.31.0",
"rimraf": "~2.2.2",
"sqlite3": "~2.1.19",
"tmp": "~0.0.21",
- "when": "~2.7.0",
- "rconsole": "~0.2.0"
+ "when": "~2.7.0"
},
"devDependencies": {
"mocha": "~1.17.0"
--
To view, visit https://gerrit.wikimedia.org/r/108729
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I7fa067c8991b4a71d44d49082df35f3dfa46dd98
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Collection/OfflineContentGenerator/bundler
Gerrit-Branch: master
Gerrit-Owner: Cscott <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits