Greasy Fork

Greasy Fork is available in English.

debug

用于调试的脚本库

当前为 2017-11-23 提交的版本,查看 最新版本

此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.greasyfork.icu/scripts/34143/232642/debug.js

// ==UserScript==
// @name         debug
// @namespace    https://github.com/yeomanye
// @version      0.5.3
// @include      *://*
// @description  用于调试的脚本库
// @author       Ming Ye
// ==/UserScript==

(function(context) {
    var debugD = true; //debug默认设置
    //创建分组打印
    var consoleFactory = createGroupDebug(groupName, styleStr, type, debugMode) {
        debugMode = (debugMode === undefined) || debugD;
        type = type || 'log';
        /**
         * 创建的分组打印日志
         * @param  {bool} debugMode 是否启用日志
         */
        var log = function(debugMode) {
            //初始化操作
            if (!log.nFirst) {
                log.nFirst = true;
                log.debugMode = debugMode;
                log.groupName = log.groupName || groupName;
                console.groupEnd();
                console.group('%c' + log.groupName, styleStr);
            }
            if (log.debugMode) {
                var argArr = Array.prototype.slice.apply(arguments);
                console[type].apply(null, argArr);
            }
        }
        /**
         * 打印对象
         * @param  {string} desc 对象描述
         * @param  {object} obj  对象数据
         */
        log.logObj = function(desc, obj, debugMode) {
            debugMode = (debugMode === undefined) || this.debugMode;
            if (debugMode) {
                console.group('%c' + desc, 'color:green;font-size:16px');
                console.log(obj);
                console.groupEnd();
            }
        }
        /**
         * 打印数组
         * @param  {string} desc 数组描述
         * @param  {array} arr  数组类型
         */
        log.logArr = function(desc, arr, debugMode) {
            debugMode = (debugMode === undefined) || this.debugMode;
            if (debugMode) {
                console.group('%c' + desc, 'color:blue;font-size:16px');
                console.table(arr);
                console.groupEnd();
            }
        }
        /**
         * 重置分组日志
         * @param  {string}  groupName 日志名
         * @param  {Boolean} debugMode 是否启用日志
         */
        log.reset = function(groupName, debugMode) {
            log.nFirst = false;
            log.debugMode = (debugMode === undefined) || true;
            log.groupName = groupName || this.groupName;
        }
        return log;
    }

    // 当参数为true时开启调试
    var debugTrue = function(isDebugger) {
        isDebugger = (isDebugger === undefined) || debugD;
        return function() {
            if (isDebugger) debugger;
        }
    }

    context.myDebugger = {
        consoleFactory: consoleFactory,
        debugTrue: debugTrue
    };

})(window);

/*var dog = {};
dog.name = "大毛";
dog.color = "黄色";
console.log("%o", dog);
console.assert(false, 1111);
console.count('count');
console.log('%c' + "style Group", 'color:green,font-size:16px', global);
console.group("第二组信息"); 
var thisObj = [    {
    name: 'quber',
    email: '[email protected]',
    qq: 757200834
}, {
    color: 'blue'
}, dog,      {
    name: 'maer',
    email: '[email protected]',
    qq: 757200831
}  ];  
console.table(thisObj);*/