Add a monkeyPatch function rather than monkey-patching in the constructor

This commit is contained in:
Kegan Dougal 2017-01-20 11:56:11 +00:00
parent 53a16158c7
commit ea860807c4
1 changed files with 5 additions and 2 deletions

View File

@ -36,7 +36,9 @@ const FLUSH_RATE_MS = 30 * 1000;
class ConsoleLogger { class ConsoleLogger {
constructor() { constructor() {
this.logs = ""; this.logs = "";
}
monkeyPatch(consoleObj) {
// Monkey-patch console logging // Monkey-patch console logging
const consoleFunctionsToLevels = { const consoleFunctionsToLevels = {
log: "I", log: "I",
@ -46,8 +48,8 @@ class ConsoleLogger {
}; };
Object.keys(consoleFunctionsToLevels).forEach((fnName) => { Object.keys(consoleFunctionsToLevels).forEach((fnName) => {
const level = consoleFunctionsToLevels[fnName]; const level = consoleFunctionsToLevels[fnName];
let originalFn = window.console[fnName].bind(window.console); let originalFn = consoleObj[fnName].bind(consoleObj);
window.console[fnName] = (...args) => { consoleObj[fnName] = (...args) => {
this.log(level, ...args); this.log(level, ...args);
originalFn(...args); originalFn(...args);
} }
@ -310,6 +312,7 @@ module.exports = {
return initPromise; return initPromise;
} }
logger = new ConsoleLogger(); logger = new ConsoleLogger();
logger.monkeyPatch(window.console);
if (window.indexedDB) { if (window.indexedDB) {
store = new IndexedDBLogStore(window.indexedDB, logger); store = new IndexedDBLogStore(window.indexedDB, logger);
initPromise = store.connect(); initPromise = store.connect();