From fc7e9312d00e60171ed77c477ed91231d3dbfff9 Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Sun, 12 Dec 2021 17:48:47 +0100 Subject: build: move modules into subproject directory --- .../language-web/src/main/js/utils/logger.ts | 49 ++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 subprojects/language-web/src/main/js/utils/logger.ts (limited to 'subprojects/language-web/src/main/js/utils/logger.ts') diff --git a/subprojects/language-web/src/main/js/utils/logger.ts b/subprojects/language-web/src/main/js/utils/logger.ts new file mode 100644 index 00000000..306d122c --- /dev/null +++ b/subprojects/language-web/src/main/js/utils/logger.ts @@ -0,0 +1,49 @@ +import styles, { CSPair } from 'ansi-styles'; +import log from 'loglevel'; +import * as prefix from 'loglevel-plugin-prefix'; + +const colors: Partial> = { + TRACE: styles.magenta, + DEBUG: styles.cyan, + INFO: styles.blue, + WARN: styles.yellow, + ERROR: styles.red, +}; + +prefix.reg(log); + +if (DEBUG) { + log.setLevel(log.levels.DEBUG); +} else { + log.setLevel(log.levels.WARN); +} + +if ('chrome' in window) { + // Only Chromium supports console ANSI escape sequences. + prefix.apply(log, { + format(level, name, timestamp) { + const formattedTimestamp = `${styles.gray.open}[${timestamp.toString()}]${styles.gray.close}`; + const levelColor = colors[level.toUpperCase()] || styles.red; + const formattedLevel = `${levelColor.open}${level}${levelColor.close}`; + const formattedName = `${styles.green.open}(${name || 'root'})${styles.green.close}`; + return `${formattedTimestamp} ${formattedLevel} ${formattedName}`; + }, + }); +} else { + prefix.apply(log, { + template: '[%t] %l (%n)', + }); +} + +const appLogger = log.getLogger(PACKAGE_NAME); + +appLogger.info('Version:', PACKAGE_NAME, PACKAGE_VERSION); +appLogger.info('Debug mode:', DEBUG); + +export function getLoggerFromRoot(name: string | symbol): log.Logger { + return log.getLogger(name); +} + +export function getLogger(name: string | symbol): log.Logger { + return getLoggerFromRoot(`${PACKAGE_NAME}.${name.toString()}`); +} -- cgit v1.2.3-70-g09d2