knex/lib/logger.js

49 lines
999 B
JavaScript
Raw Normal View History

/* eslint no-console:0 */
const color = require('colorette');
const { isFunction, isNil } = require('lodash');
function log(message, userFn, colorFn) {
if (!isNil(userFn) && !isFunction(userFn)) {
throw new TypeError('Extensions to knex logger must be functions!');
}
if (isFunction(userFn)) {
userFn(message);
return;
}
console.log(colorFn ? colorFn(message) : message);
}
class Logger {
constructor(config) {
const { log: { debug, warn, error, deprecate } = {} } = config;
this._debug = debug;
this._warn = warn;
this._error = error;
this._deprecate = deprecate;
}
debug(message) {
log(message, this._debug);
}
warn(message) {
log(message, this._warn, color.yellow);
}
error(message) {
log(message, this._error, color.red);
}
deprecate(method, alternative) {
const message = `${method} is deprecated, please use ${alternative}`;
log(message, this._deprecate, color.yellow);
}
}
module.exports = Logger;