import moment from 'moment'
const log = require('loglevel');
log.enableAll();

// 获取后可以改变日志级别
window.getLog = () => {
    return log;
}
window._logWithTimeStamp = true;

const timeStamp = () => {
    if (window._logWithTimeStamp) {
        return `[${moment().format('hh:mm:ss')}] `
    }
    return ''
}
/*
    带trace的、默认折叠起来的控制台输出
    第一个参数最好传入string类型的标识，接着可以跟任意类型任意个数的参数，各个参数都会打印到控制台
*/ 
export function trace_collapse(content) {
    if (console.groupCollapsed) {
        console.groupCollapsed(typeof content == 'string' ? content : 'trace_collapse');
        log.trace(arguments);
        console.groupEnd();
    } else {
        trace(content)
    }
}

export function trace(content) {
    log.trace(content);
}
export function debug(content) {
    log.debug(content);
}
export function info(content) {
    log.info(content);
}
export function warn(content) {
    log.warn(content);
}
export function error(content) {
    log.error(content);
}

export function trace_c(content) {
    log.trace(`${timeStamp()}%c${content}`, 'color:magenta;');
}
export function debug_c(content) {
    log.debug(`${timeStamp()}%c${content}`, 'color:cyan;');
}
export function info_c(content) {
    log.info(`${timeStamp()}%c${content}`, 'color:blue;');
}
export function warn_c(content) {
    log.warn(`${timeStamp()}%c${content}`, 'color:crimson;');
}
export function error_c(content) {
    log.error(`${timeStamp()}%c${content}`, 'color:red;');
}
