Greasy Fork is available in English.

Greasemonkey | Color Log

Colored logger for Greasemonkey scripts. Drop-in extension for 'window.console' logging methods (debug/info/log/warn/error). Set 'window.DEBUG' to 1 to show debug() messages.

Устаревшая версия на 09.03.2018. Перейти к последней версии.

Этот скрипт недоступен для установки пользователем. Он является библиотекой, которая подключается к другим скриптам мета-ключом // @require https://update.greasyfork.org/scripts/38888/257557/Greasemonkey%20%7C%20Color%20Log.js

// ==UserScript==
// @name            Greasemonkey | Color Log
// @namespace       de.sidneys.greasemonkey
// @homepage        https://gist.githubusercontent.com/sidneys/5d44a978d18a1b91f554b2358406671d/raw/
// @version         7.7.7
// @description     Colored logger for Greasemonkey scripts. Drop-in extension for 'window.console' logging methods (debug/info/log/warn/error). Set 'window.DEBUG' to 1 to show debug() messages.
// @author          sidneys
// @icon            https://www.greasespot.net/favicon.ico
// @include         http*://*/*
// @grant           unsafeWindow
// ==/UserScript==

/**
 * Main reference to original logger
 * @constant
 */
const originalLog = console.log;


/**
 * Check debug switch
 * @return {Boolean} - Yes/no
 */
let isDebug =  () => Boolean(unsafeWindow.DEBUG) || Boolean(this.DEBUG);
isDebug = isDebug.bind(this);


/**
 * Get log prefix
 * @return {String} - Prefix
 */
let getPrefix =  () => GM_info.script.name;


/**
 * Main logging method
 *
 * @example
 * gmlog.info('message');
 *
 * @example
 * gmlog.error(`Errorcode: ${ERRORCODE}`);
 *
 * @example
 * GM_setValue('debug', true);
 * gmlog.debug(`Only visible in debug`);
 *
 * @global
 */
let GMLog = {
    debug() {
        if (!isDebug()) { return; }

        const color = `rgb(255, 150, 70)`;

        originalLog.call(this, `? %c[${getPrefix()}] %c${Array.from(arguments).join(' ')}`, `font-weight: 600; color: ${color};`, `font-weight: 400; color: ${color};`);
    },
    error() {
        const color = `rgb(220, 0, 30)`;

        originalLog.call(this, `?️ %c[${getPrefix()}] %c${Array.from(arguments).join(' ')}`, `font-weight: 600; color: ${color};`, `font-weight: 400; color: ${color};`);
    },
    info() {
        const color = `rgb(0, 200, 180)`;

        originalLog.call(this, `ℹ️ %c[${getPrefix()}] %c${Array.from(arguments).join(' ')}`, `font-weight: 600; color: ${color};`, `font-weight: 400; color: ${color};`);
    },
    log() {
        const color = `rgb(70, 70, 70)`;

        originalLog.call(this, `✳️ %c[${getPrefix()}] %c${Array.from(arguments).join(' ')}`, `font-weight: 600; color: ${color};`, `font-weight: 400; color: ${color};`);
    },
    warn() {
        const color = `rgb(255, 100, 0)`;

        originalLog.call(this, `⚠️ %c[${getPrefix()}] %c${Array.from(arguments).join(' ')}`, `font-weight: 600; color: ${color};`, `font-weight: 400; color: ${color};`);
    }
};


/**
 * Replace window.console logging methods:
 * debug(), info(), log(), warn(), error()
 */
Object.assign(console, GMLog);