Cscott has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/108734


Change subject: Add syslog logging when --syslog CLI option is passed.
......................................................................

Add syslog logging when --syslog CLI option is passed.

Change-Id: I6baa8b6632c93dda97841dae28684d0eb81592a0
---
M bin/mw-ocg-texter
M lib/index.js
M package.json
3 files changed, 32 insertions(+), 10 deletions(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Collection/OfflineContentGenerator/text_renderer
 refs/changes/34/108734/1

diff --git a/bin/mw-ocg-texter b/bin/mw-ocg-texter
index 77cc827..256b441 100755
--- a/bin/mw-ocg-texter
+++ b/bin/mw-ocg-texter
@@ -16,7 +16,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.parse(process.argv);
 
@@ -31,10 +33,24 @@
 
 var bundlefile = program.args[0];
 
+var Syslog = program.syslog ? require('node-syslog') : {
+       init: function() { },
+       log: function() { },
+       close: function() { }
+};
+Syslog.init(texter.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);
        }
 };
 
@@ -48,12 +64,16 @@
 };
 
 texter.convert(options).then(function(status) {
+       Syslog.close();
        process.exit(status);
 }, function(err) {
-    if (program.debug && err.stack) {
-        console.error(err.stack);
-    } else {
-        console.error(err);
-    }
-    process.exit(1);
+       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);
 }).done();
diff --git a/lib/index.js b/lib/index.js
index 62de4e5..faa2dd6 100644
--- a/lib/index.js
+++ b/lib/index.js
@@ -862,6 +862,7 @@
 };
 
 module.exports = {
-       version: json.version, // version # for this code
+       name: json.name, // package name
+       version: json.version, // version # for this package
        convert: convert
 };
diff --git a/package.json b/package.json
index 832fcdc..26e0ec7 100644
--- a/package.json
+++ b/package.json
@@ -19,11 +19,12 @@
     "commander": "~2.1.0",
     "domino": "~1.0.13",
     "es6-shim": "~0.9.1",
+    "linewrap": "~0.2.1",
+    "node-syslog": "~1.1.7",
     "readable-stream": "~1.1.9",
     "sqlite3": "~2.1.19",
     "tmp": "~0.0.21",
-    "when": "~2.7.0",
-    "linewrap": "~0.2.1"
+    "when": "~2.7.0"
   },
   "devDependencies": {
     "mocha": "~1.16.1"

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I6baa8b6632c93dda97841dae28684d0eb81592a0
Gerrit-PatchSet: 1
Gerrit-Project: 
mediawiki/extensions/Collection/OfflineContentGenerator/text_renderer
Gerrit-Branch: master
Gerrit-Owner: Cscott <[email protected]>

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

Reply via email to