当前位置: 首页 > 工具软件 > js-log > 使用案例 >

JS日志输出控制工具类——LOG

狄奕
2023-12-01

在实际的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

 

 

 类似资料: