33 lines
866 B
JavaScript
33 lines
866 B
JavaScript
|
/**
|
||
|
* console plugin
|
||
|
*
|
||
|
* Monkey patches console.* calls into Sentry messages with
|
||
|
* their appropriate log levels. (Experimental)
|
||
|
*
|
||
|
* Options:
|
||
|
*
|
||
|
* `levels`: An array of levels (methods on `console`) to report to Sentry.
|
||
|
* Defaults to debug, info, warn, and error.
|
||
|
*/
|
||
|
var wrapConsoleMethod = require('../src/console').wrapMethod;
|
||
|
|
||
|
function consolePlugin(Raven, console, pluginOptions) {
|
||
|
console = console || window.console || {};
|
||
|
pluginOptions = pluginOptions || {};
|
||
|
|
||
|
var logLevels = pluginOptions.levels || ['debug', 'info', 'warn', 'error'];
|
||
|
if ('assert' in console) logLevels.push('assert');
|
||
|
|
||
|
var callback = function(msg, data) {
|
||
|
Raven.captureMessage(msg, data);
|
||
|
};
|
||
|
|
||
|
var level = logLevels.pop();
|
||
|
while (level) {
|
||
|
wrapConsoleMethod(console, level, callback);
|
||
|
level = logLevels.pop();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
module.exports = consolePlugin;
|