Add optional support for rollbar
Closes #150 Logs messages of severity ERROR or higher
This commit is contained in:
parent
1f3aca837b
commit
65f31fd7c1
4
NEWS.md
4
NEWS.md
@ -1,6 +1,10 @@
|
|||||||
1.9.0 - 2014-MM-DD
|
1.9.0 - 2014-MM-DD
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
|
New features:
|
||||||
|
|
||||||
|
- Add optional support for rollbar (#137)
|
||||||
|
|
||||||
Enhancements:
|
Enhancements:
|
||||||
|
|
||||||
* Allow configuring log_format (#131)
|
* Allow configuring log_format (#131)
|
||||||
|
13
app.js
13
app.js
@ -31,7 +31,16 @@ log4js_config = {
|
|||||||
],
|
],
|
||||||
replaceConsole:true
|
replaceConsole:true
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if ( global.settings.rollbar ) {
|
||||||
|
log4js_config.appenders.push({
|
||||||
|
type: __dirname + "/app/models/log4js_rollbar.js",
|
||||||
|
options: global.settings.rollbar
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
log4js.configure(log4js_config);
|
log4js.configure(log4js_config);
|
||||||
|
global.logger = log4js.getLogger();
|
||||||
|
|
||||||
|
|
||||||
// kick off controller
|
// kick off controller
|
||||||
@ -42,3 +51,7 @@ app.listen(global.settings.node_port, global.settings.node_host, function() {
|
|||||||
global.settings.node_host + ":" + global.settings.node_port +
|
global.settings.node_host + ":" + global.settings.node_port +
|
||||||
" with base_url " + global.settings.base_url);
|
" with base_url " + global.settings.base_url);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
process.on('uncaughtException', function(err) {
|
||||||
|
logger.error('Uncaught exception: ' + err.stack);
|
||||||
|
});
|
||||||
|
49
app/models/log4js_rollbar.js
Normal file
49
app/models/log4js_rollbar.js
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
var rollbar = require("rollbar");
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Rollbar Appender. Sends logging events to Rollbar using node-rollbar
|
||||||
|
*
|
||||||
|
* @param config object with rollbar configuration data
|
||||||
|
* {
|
||||||
|
* token: 'your-secret-token',
|
||||||
|
* options: node-rollbar options
|
||||||
|
* }
|
||||||
|
*/
|
||||||
|
function rollbarAppender(config) {
|
||||||
|
|
||||||
|
var opt = config.options;
|
||||||
|
rollbar.init(opt.token, opt.options);
|
||||||
|
|
||||||
|
return function(loggingEvent) {
|
||||||
|
/*
|
||||||
|
For logger.trace('one','two','three'):
|
||||||
|
{ startTime: Wed Mar 12 2014 16:27:40 GMT+0100 (CET),
|
||||||
|
categoryName: '[default]',
|
||||||
|
data: [ 'one', 'two', 'three' ],
|
||||||
|
level: { level: 5000, levelStr: 'TRACE' },
|
||||||
|
logger: { category: '[default]', _events: { log: [Object] } } }
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Levels:
|
||||||
|
// TRACE 5000
|
||||||
|
// DEBUG 10000
|
||||||
|
// INFO 20000
|
||||||
|
// WARN 30000
|
||||||
|
// ERROR 40000
|
||||||
|
// FATAL 50000
|
||||||
|
//
|
||||||
|
// We only log error and higher errors
|
||||||
|
//
|
||||||
|
if ( loggingEvent.level.level < 40000 ) return;
|
||||||
|
|
||||||
|
rollbar.reportMessage(loggingEvent.data);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function configure(config) {
|
||||||
|
return rollbarAppender(config);
|
||||||
|
}
|
||||||
|
|
||||||
|
exports.name = "rollbar";
|
||||||
|
exports.appender = rollbarAppender;
|
||||||
|
exports.configure = configure;
|
@ -40,3 +40,11 @@ module.exports.tableCacheMax = 8192;
|
|||||||
module.exports.tableCacheMaxAge = 1000*60*10;
|
module.exports.tableCacheMaxAge = 1000*60*10;
|
||||||
// Temporary directory, make sure it is writable by server user
|
// Temporary directory, make sure it is writable by server user
|
||||||
module.exports.tmpDir = '/tmp';
|
module.exports.tmpDir = '/tmp';
|
||||||
|
// Optional rollbar support
|
||||||
|
module.exports.rollbar = {
|
||||||
|
token: 'secret',
|
||||||
|
// See http://github.com/rollbar/node_rollbar#configuration-reference
|
||||||
|
options: {
|
||||||
|
handler: 'inline'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -40,3 +40,11 @@ module.exports.tableCacheMax = 8192;
|
|||||||
module.exports.tableCacheMaxAge = 1000*60*10;
|
module.exports.tableCacheMaxAge = 1000*60*10;
|
||||||
// Temporary directory, make sure it is writable by server user
|
// Temporary directory, make sure it is writable by server user
|
||||||
module.exports.tmpDir = '/tmp';
|
module.exports.tmpDir = '/tmp';
|
||||||
|
// Optional rollbar support
|
||||||
|
module.exports.rollbar = {
|
||||||
|
token: 'secret',
|
||||||
|
// See http://github.com/rollbar/node_rollbar#configuration-reference
|
||||||
|
options: {
|
||||||
|
handler: 'inline'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
8
npm-shrinkwrap.json
generated
8
npm-shrinkwrap.json
generated
@ -122,6 +122,14 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"rollbar": {
|
||||||
|
"version": "0.3.1",
|
||||||
|
"dependencies": {
|
||||||
|
"node-uuid": {
|
||||||
|
"version": "1.4.1"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"redis": {
|
"redis": {
|
||||||
"version": "0.7.1"
|
"version": "0.7.1"
|
||||||
},
|
},
|
||||||
|
@ -26,7 +26,8 @@
|
|||||||
"oauth-client": "0.2.0",
|
"oauth-client": "0.2.0",
|
||||||
"node-uuid":"1.3.3",
|
"node-uuid":"1.3.3",
|
||||||
"lru-cache":"~2.2.2",
|
"lru-cache":"~2.2.2",
|
||||||
"log4js": "~0.6.10"
|
"log4js": "~0.6.10",
|
||||||
|
"rollbar": "~0.3.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"redis": "0.7.1",
|
"redis": "0.7.1",
|
||||||
|
Loading…
Reference in New Issue
Block a user