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.
当前为
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.cn-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);