@ziki/es6-log
Version:
@ziki/es6-log
101 lines (90 loc) • 2.43 kB
JavaScript
class ZikiLog {
constructor() {
Object.defineProperty(Object.prototype, 'debug', {
value: this.__bug,
writable: true,
enumerable : false,
})
Object.defineProperty(Object.prototype, 'log', {
value: this.__log,
writable: true,
enumerable : false,
})
Object.defineProperty(Object.prototype, 'warn', {
value: this.__warn,
writable: true,
enumerable : false,
})
Object.defineProperty(Object.prototype, 'error', {
value: this.__err,
writable: true,
enumerable : false,
})
this.tag = 'ziki'
this.len = 10
this.spliter = '-'
this.level = 5
}
set level(lv) {
Object.prototype.debug = this.__empty
Object.prototype.log = this.__empty
Object.prototype.warn = this.__empty
Object.prototype.error = this.__empty
if(lv > 0) {
Object.prototype.debug = this.__bug
}
if(lv > 1) {
Object.prototype.log = this.__log
}
if(lv > 2) {
Object.prototype.warn = this.__warn
}
if(lv > 3) {
Object.prototype.error = this.__err
}
}
get __bug() {
let _self = this;
return function(...args) {
console.debug(_self.tag, _self.spliter, _self.__gettime, _self.spliter, _self.__getname(this.constructor.name), _self.spliter, ...arguments)
}
}
get __log() {
let _self = this;
return function(...args) {
console.log(_self.tag, _self.spliter, _self.__gettime, _self.spliter, _self.__getname(this.constructor.name), _self.spliter, ...arguments)
}
}
get __warn() {
let _self = this;
return function(...args) {
console.warn(_self.tag, _self.spliter, _self.__gettime, _self.spliter, _self.__getname(this.constructor.name), _self.spliter, ...arguments)
}
}
get __err() {
let _self = this;
return function(...args) {
console.error(_self.tag, _self.spliter, _self.__gettime, _self.spliter, _self.__getname(this.constructor.name), _self.spliter, ...arguments)
}
}
get __empty() {
return function() {
}
}
__getname(str) {
if(str.length > this.preLen) {
return str.substring(0, this.preLen) + '...'
}
var mystr = str
var spaces = this.preLen + 3 - mystr.length
while(spaces--) {
mystr += ' '
}
return mystr
}
get __gettime() {
let date = new Date()
return date.getHours() + ':' + date.getMinutes() + ':' + date.getSeconds() + ":" + date.getMilliseconds()
}
}
export default new ZikiLog()