X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/a4e92f85f83046cef29d4ce0f71cea6250ce8df6..de22ea374455fb4c8c626cab04b051be4b2fc6ab:/src/fnpjs/logging/handlers.js diff --git a/src/fnpjs/logging/handlers.js b/src/fnpjs/logging/handlers.js index c15d17f..a85645a 100644 --- a/src/fnpjs/logging/handlers.js +++ b/src/fnpjs/logging/handlers.js @@ -3,6 +3,48 @@ define(function() { 'use strict'; -return {}; +return { + console: function(record) { + /* global console */ + var level = record.level, + method, msg; + if(console) { + if(level === 'warning') { + level = 'warn'; + } + method = (typeof console[level] === 'function') ? level : 'log'; + if(record.data && record.data.exception && record.data.exception.stack) { + msg = record.data.exception.stack; + } else { + msg = record.message; + } + console[method](msg); + } + }, + raven: function(record) { + /* global window */ + if(!window.Raven) { + return; + } + + var ravenData = { + level: record.level, + logger: record.loggerName, + tags: {} + }; + + Object.keys(record.data || {}) + .filter(function(key) {return key !== 'exception';}) + .forEach(function(key) { + ravenData.tags[key] = record.data[key]; + }); + + if(record.data && record.data.exception) { + window.Raven.captureException(record.data.exception, ravenData); + } else { + window.Raven.captureMessage(record.message, ravenData); + } + } +}; }); \ No newline at end of file