diff --git a/src/cheapGlkOte.js b/src/cheapGlkOte.js index 7f0270d..73c9657 100644 --- a/src/cheapGlkOte.js +++ b/src/cheapGlkOte.js @@ -5,7 +5,7 @@ const GlkOte = require('./glkOte/glkote-term') class CheapGlkOte extends GlkOte { - constructor(handlers) { + constructor(handlers, loggers) { super() this.window = null @@ -94,16 +94,16 @@ class CheapGlkOte extends GlkOte { }) } - log(msg) { - console.log(`[log]: ${msg}`) + log(message) { + loggers.log(message) } - warning(msg) { - console.warn(`[warning]: ${msg}`) + warning(message) { + loggers.warn(message) } error(message) { - console.error(`[error]: ${message}`) + loggers.error(message) } } diff --git a/src/fakeDialog.js b/src/fakeDialog.js index 02ec0e8..c37b0fb 100644 --- a/src/fakeDialog.js +++ b/src/fakeDialog.js @@ -4,7 +4,7 @@ */ class FakeDialog { - constructor(handlers) { + constructor(handlers, loggers) { this.streaming = false this.handlers = handlers } @@ -32,7 +32,15 @@ class FakeDialog { } log(message) { - console.log(message) + loggers.log(message) + } + + warning(message) { + loggers.warn(message) + } + + error(message) { + loggers.error(message) } } diff --git a/src/index.js b/src/index.js index d48ccec..5102ab3 100644 --- a/src/index.js +++ b/src/index.js @@ -15,12 +15,18 @@ const noopHandlers = [ 'setSend' ].reduce((acc, x) => ((acc[x] = noop), acc), {}) -module.exports = handlers_ => { +const defaultLoggers = { + log: console.log, + warning: console.warn, + error: console.error +} + +module.exports = (handlers_, loggers = defaultLoggers) => { const handlers = Object.assign({}, noopHandlers, handlers_) - const Dialog = new FakeDialog(handlers) - const GlkOte = new CheapGlkOte(handlers) + const Dialog = new FakeDialog(handlers, loggers) + const GlkOte = new CheapGlkOte(handlers, loggers) const sendFn = GlkOte.sendFn.bind(GlkOte)