Files
cloudron-box/src/logcollector.js
T

38 lines
1.1 KiB
JavaScript
Raw Normal View History

2016-04-19 16:42:05 -07:00
'use strict';
exports = module.exports = {
2016-04-19 18:39:44 -07:00
sendFailureLogs: sendFailureLogs
2016-04-19 16:42:05 -07:00
};
var assert = require('assert'),
mailer = require('./mailer.js'),
safe = require('safetydance'),
path = require('path'),
util = require('util');
var COLLECT_LOGS_CMD = path.join(__dirname, 'scripts/collectlogs.sh');
2016-04-19 18:39:44 -07:00
function collectLogs(unitName, callback) {
assert.strictEqual(typeof unitName, 'string');
2016-04-19 16:42:05 -07:00
assert.strictEqual(typeof callback, 'function');
2016-04-19 18:39:44 -07:00
var logs = safe.child_process.execSync('sudo ' + COLLECT_LOGS_CMD + ' ' + unitName, { encoding: 'utf8' });
2016-04-19 16:42:05 -07:00
callback(null, logs);
}
2016-04-19 18:39:44 -07:00
function sendFailureLogs(processName, options) {
assert.strictEqual(typeof processName, 'string');
assert.strictEqual(typeof options, 'object');
2016-04-19 19:12:47 -07:00
collectLogs(options.unit || processName, function (error, result) {
2016-04-19 16:42:05 -07:00
if (error) {
console.error('Failed to collect logs.', error);
result = util.format('Failed to collect logs.', error);
}
2016-04-19 18:39:44 -07:00
console.log('Sending failure logs for', processName);
2016-04-19 19:12:47 -07:00
mailer.unexpectedExit(processName, result);
2016-04-19 16:42:05 -07:00
});
}