diff --git a/package.json b/package.json index e4c2e45..88707f8 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,7 @@ "sinon": "~1.17.3" }, "dependencies": { + "debug": "~2.2.0", "elasticsearch": "~11.0.1", "lodash": "~4.11.1", "moment": "~2.10.6", diff --git a/src/helpers/logger.js b/src/helpers/logger.js new file mode 100644 index 0000000..873e23c --- /dev/null +++ b/src/helpers/logger.js @@ -0,0 +1,5 @@ +import debugging from 'debug'; + +export default function logger(type) { + return debugging(type); +} \ No newline at end of file diff --git a/src/index.js b/src/index.js index 461e677..f3c29e8 100644 --- a/src/index.js +++ b/src/index.js @@ -1,10 +1,13 @@ import events from 'events'; import createClient from './helpers/es_client'; import indexTimestamp from './helpers/index_timestamp'; +import logger from './helpers/logger'; import Job from './job.js'; import Worker from './worker.js'; import { omit } from 'lodash'; +const debug = logger('queue'); + export default class Elastique extends events.EventEmitter { constructor(index, options = {}) { if (!index) throw new Error('Must specify an index to write to'); @@ -21,12 +24,14 @@ export default class Elastique extends events.EventEmitter { } _initTasks() { - var initTasks = [ this.client.ping({ timeout: 3000 }), ]; - return Promise.all(initTasks); + return Promise.all(initTasks).catch((err) => { + debug('Initialization failed', err); + throw err; + }); } add(type, payload, opts = {}) { diff --git a/src/job.js b/src/job.js index 00fe716..32d616d 100644 --- a/src/job.js +++ b/src/job.js @@ -1,8 +1,11 @@ import events from 'events'; import { isPlainObject } from 'lodash'; +import logger from './helpers/logger'; import { JOB_STATUS_PENDING } from './helpers/constants'; import createIndex from './helpers/create_index'; +const debug = logger('job'); + export default class Job extends events.EventEmitter { constructor(client, index, type, payload, timeout = 10000) { if (typeof type !== 'string') throw new Error('Type must be a string'); @@ -38,9 +41,11 @@ export default class Job extends events.EventEmitter { type: doc._type, version: doc._version, }; + debug('Job created', this.document); }); }) .catch((err) => { + debug('Job creation failed', err); this.emit('error', err); throw err; });