think-logger3
Version:
logger for ThinkJS 3.x
25 lines (21 loc) • 779 B
JavaScript
const assert = require('assert');
const BasicAdapter = require('./adapter/base');
const ConsoleAdapter = require('./adapter/console');
const FileAdapter = require('./adapter/file');
const DateFileAdapter = require('./adapter/datefile');
class Logger {
constructor(config = {}) {
const Handle = config.handle || ConsoleAdapter;
delete config.handle;
this._logger = new Handle(config);
['trace', 'debug', 'info', 'warn', 'error', 'getLogger'].forEach(level => {
assert(this._logger[level], `adapter function ${level} not exist!`);
this[level] = this._logger[level].bind(this._logger);
});
}
}
Logger.Basic = BasicAdapter;
Logger.Console = ConsoleAdapter;
Logger.File = FileAdapter;
Logger.DateFile = DateFileAdapter;
module.exports = Logger;