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.

2018-03-09 기준 버전입니다. 최신 버전을 확인하세요.

이 스크립트는 직접 설치하는 용도가 아닙니다. 다른 스크립트에서 메타 지시문 // @require https://update.greasyfork.org/scripts/38888/257555/Greasemonkey%20%7C%20Color%20Log.js을(를) 사용하여 포함하는 라이브러리입니다.

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

You will need to install an extension such as Tampermonkey to install this script.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==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 || DEBUG);

/**
 * 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);