qw-utils
Version:
qw Utils package
50 lines • 1.58 kB
JavaScript
/**
* 日志工具类,统一管理日志
*/
class loggerUtils {
constructor() {
let logLevel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'info';
this.logLevel = logLevel;
this.enabled = true;
}
disable() {
this.enabled = false;
}
enable() {
this.enabled = true;
}
info(message) {
if (this.enabled && (this.logLevel === 'debug' || this.logLevel === 'info')) {
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
args[_key - 1] = arguments[_key];
}
this.log('INFO', message, args);
}
}
warn(message) {
if (this.enabled && (this.logLevel === 'debug' || this.logLevel === 'info' || this.logLevel === 'warn')) {
for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
args[_key2 - 1] = arguments[_key2];
}
this.log('WARN', message, args);
}
}
error(error) {
if (this.enabled && this.logLevel !== 'silent') {
const message = error ? error.message : 'Unknown error occurred';
for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {
args[_key3 - 1] = arguments[_key3];
}
this.log('ERROR', message, args);
}
}
log(level, message, args) {
const logLine = `[${level}] ${message}`;
if (args.length > 0) {
console.log(logLine, args);
} else {
console.log(logLine);
}
}
}
module.exports = loggerUtils;