在实际的JS编码中,经常需要按指定类型的日志输出日志,便于根据日志信息排查问题,顺手就简单封装了一下。
有时需要输出所有日志,有时需要输出非debug日志,有时需要输出结果类的日志,有时需要输出告警类的日志,有时上线仅需要输出错误类的日志……
只要设置好log_level的输出日志等级,就可以仅输出指定类型的日志。
直接上代码:
/**
* 日志等级
*/
var LOG_LEVEL = {
/**
* debug-调试级
*/
DEBUG: 'debug',
/**
* info-信息级
*/
INFO: 'info',
/**
* result-重要结果级
*/
RESULT: 'result',
/**
* warn-告警级
*/
WARN: 'warn',
/**
* error-错误级
*/
ERROR: 'error',
/**
* none-不打印日志
*/
NONE: 'none',
};
/**
* 日志打印相关控制操作
*/
var LOG = {
/**
* 只执行debug级的日志输出(只控制callback的执行,不控制输出日志的类型)
* @param {*} callback
*/
debug: function(callback) {
if (BASE.logLevel == LOG_LEVEL.DEBUG) {
if (BASE.isNotNull(callback)) {
callback();
}
}
},
/**
* 只执行info、debug级的日志输出(只控制callback的执行,不控制输出日志的类型)
* @param {*} callback
*/
info: function(callback) {
if (BASE.logLevel == LOG_LEVEL.INFO ||
BASE.logLevel == LOG_LEVEL.DEBUG) {
if (BASE.isNotNull(callback)) {
callback();
}
}
},
/**
* 只执行result、info、debug级的日志输出(只控制callback的执行,不控制输出日志的类型)
* @param {*} callback
*/
result: function(callback) {
if (BASE.logLevel == LOG_LEVEL.RESULT ||
BASE.logLevel == LOG_LEVEL.INFO ||
BASE.logLevel == LOG_LEVEL.DEBUG) {
if (BASE.isNotNull(callback)) {
callback();
}
}
},
/**
* 只执行warn、result、info、debug级的日志输出(只控制callback的执行,不控制输出日志的类型)
* @param {*} callback
*/
warn: function(callback) {
if (BASE.logLevel == LOG_LEVEL.RESULT ||
BASE.logLevel == LOG_LEVEL.WARN ||
BASE.logLevel == LOG_LEVEL.INFO ||
BASE.logLevel == LOG_LEVEL.DEBUG) {
if (BASE.isNotNull(callback)) {
callback();
}
}
},
/**
* 只执行error、warn、result、info、debug级的日志输出(只控制callback的执行,不控制输出日志的类型)
* @param {*} callback
*/
error: function(callback) {
if (BASE.logLevel == LOG_LEVEL.ERROR ||
BASE.logLevel == LOG_LEVEL.WARN ||
BASE.logLevel == LOG_LEVEL.RESULT ||
BASE.logLevel == LOG_LEVEL.INFO ||
BASE.logLevel == LOG_LEVEL.DEBUG) {
if (BASE.isNotNull(callback)) {
callback();
}
}
},
};
如何使用呢?
// 打印日志相关
// 设置日志级别
BASE.setLogLevel(BASE.LOG_LEVEL.INFO);
// 此日志不会输出(当BASE.setLogLevel(BASE.LOG_LEVEL.DEBUG);时会输出)
BASE.LOG.debug(()=>{
console.log('>> 打印debug日志');
});
// 此日志会输出
BASE.LOG.info(()=>{
console.log('>> 打印info日志');
});
// 此日志会输出
BASE.LOG.result(()=>{
console.log('>> 打印result日志');
});
// 此日志会输出
BASE.LOG.warn(()=>{
console.warn('>> 打印warn日志');
});
// 此日志会输出
BASE.LOG.error(()=>{
console.error('>> 打印error日志');
});
具体使用,请看阅本文涉及到的本人写的另一工具类——BASE工具类:JS基础工具类——BASE