Coloured logger

Basic logger with some stylings

このスクリプトは単体で利用できません。右のようなメタデータを含むスクリプトから、ライブラリとして読み込まれます: // @require https://update.greatest.deepsurf.us/scripts/576832/1817140/Coloured%20logger.js

スクリプトをインストールするには、Tampermonkey, GreasemonkeyViolentmonkey のような拡張機能のインストールが必要です。

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

スクリプトをインストールするには、TampermonkeyViolentmonkey のような拡張機能のインストールが必要です。

スクリプトをインストールするには、TampermonkeyUserscripts のような拡張機能のインストールが必要です。

このスクリプトをインストールするには、Tampermonkeyなどの拡張機能をインストールする必要があります。

このスクリプトをインストールするには、ユーザースクリプト管理ツールの拡張機能をインストールする必要があります。

(ユーザースクリプト管理ツールは設定済みなのでインストール!)

このスタイルをインストールするには、Stylusなどの拡張機能をインストールする必要があります。

このスタイルをインストールするには、Stylus などの拡張機能をインストールする必要があります。

このスタイルをインストールするには、Stylus tなどの拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

(ユーザースタイル管理ツールは設定済みなのでインストール!)

このスクリプトの質問や評価の投稿はこちら通報はこちらへお寄せください
// ==UserScript==
// @name        Coloured logger
// @namespace   https://greatest.deepsurf.us/en/users/1574555-littux
// @version     1.0.0
// @description Basic logger with some stylings
// @author      littux
// @grant       none
// @license     GPL-3.0-only
// @run-at      document-start
// ==/UserScript==

(() => {
	const globals = typeof unsafeWindow !== "undefined" ? unsafeWindow : window;
	globals.__littuxUserscripts__ ??= {};
	const userScripts = globals.__littuxUserscripts__;

	userScripts.logger ??= {
		logFuncMap: {
			debug: console.debug,
			info: console.info,
			log: console.log,
			warn: console.warn,
			error: console.error,
			crit: console.error,
		},
		logBGColorMap: {
			debug: "#555",
			info: "#0cf",
			log: "#fff",
			warn: "#ff0",
			error: "#f00",
			crit: "#700",
		},
		logColorMap: {
			debug: "#fff",
			info: "#000",
			log: "#000",
			warn: "#000",
			error: "#fff",
			crit: "#fff",
		},

		log({ level = "log", msg, func }, ...args) {
			userScripts.logger.logFuncMap[level](
				"%c[" + func + "] %c" + level + "%c " + msg,
				"font-weight: bold",
				"font-weight: bold; padding: 1px 3px; border-radius: 4px; background: " + userScripts.logger.logBGColorMap[level] + "; color: " + userScripts.logger.logColorMap[level],
				"",
				...args
			);
		},

		Logger: class Logger {
			constructor(funcName) {
				this.funcName = funcName;
				this.logMsg = userScripts.logger.log;
			}

			debug(msg, ...args) {
				this.logMsg({ level: "debug", msg, func: this.funcName }, ...args);
			}

			info(msg, ...args) {
				this.logMsg({ level: "info", msg, func: this.funcName }, ...args);
			}

			log(msg, ...args) {
				this.logMsg({ level: "log", msg, func: this.funcName }, ...args);
			}

			warn(msg, ...args) {
				this.logMsg({ level: "warn", msg, func: this.funcName }, ...args);
			}

			error(msg, ...args) {
				this.logMsg({ level: "error", msg, func: this.funcName }, ...args);
			}

			crit(msg, ...args) {
				this.logMsg({ level: "crit", msg, func: this.funcName }, ...args);
			}
		},

		getLogger(funcName) { return new userScripts.logger.Logger(funcName) }
	};

	window.getLogger = userScripts.logger.getLogger;
})();