From def79f104999710953124c77241c95a7726791f0 Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Sat, 30 Oct 2021 14:36:39 +0200 Subject: chore(web): move logger to utils/ --- language-web/src/main/js/editor/EditorArea.tsx | 4 +- language-web/src/main/js/editor/EditorStore.ts | 4 +- language-web/src/main/js/logging.tsx | 49 ---------------------- language-web/src/main/js/utils/PendingTask.ts | 4 +- language-web/src/main/js/utils/logger.ts | 49 ++++++++++++++++++++++ .../src/main/js/xtext/ContentAssistService.ts | 2 +- language-web/src/main/js/xtext/UpdateService.ts | 2 +- .../src/main/js/xtext/ValidationService.ts | 2 +- language-web/src/main/js/xtext/XtextClient.ts | 2 +- .../src/main/js/xtext/XtextWebSocketClient.ts | 4 +- 10 files changed, 61 insertions(+), 61 deletions(-) delete mode 100644 language-web/src/main/js/logging.tsx create mode 100644 language-web/src/main/js/utils/logger.ts diff --git a/language-web/src/main/js/editor/EditorArea.tsx b/language-web/src/main/js/editor/EditorArea.tsx index 7b6201ed..678a632d 100644 --- a/language-web/src/main/js/editor/EditorArea.tsx +++ b/language-web/src/main/js/editor/EditorArea.tsx @@ -10,10 +10,10 @@ import React, { } from 'react'; import { EditorParent } from './EditorParent'; -import { getLogger } from '../logging'; import { useRootStore } from '../RootStore'; +import { getLogger } from '../utils/logger'; -const log = getLogger('EditorArea'); +const log = getLogger('editor.EditorArea'); function usePanel( panelId: string, diff --git a/language-web/src/main/js/editor/EditorStore.ts b/language-web/src/main/js/editor/EditorStore.ts index be9295bf..78cf763c 100644 --- a/language-web/src/main/js/editor/EditorStore.ts +++ b/language-web/src/main/js/editor/EditorStore.ts @@ -43,11 +43,11 @@ import { } from 'mobx'; import { problemLanguageSupport } from '../language/problemLanguageSupport'; -import { getLogger } from '../logging'; +import { getLogger } from '../utils/logger'; import type { ThemeStore } from '../theme/ThemeStore'; import { XtextClient } from '../xtext/XtextClient'; -const log = getLogger('EditorStore'); +const log = getLogger('editor.EditorStore'); export class EditorStore { themeStore; diff --git a/language-web/src/main/js/logging.tsx b/language-web/src/main/js/logging.tsx deleted file mode 100644 index 306d122c..00000000 --- a/language-web/src/main/js/logging.tsx +++ /dev/null @@ -1,49 +0,0 @@ -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()}`); -} diff --git a/language-web/src/main/js/utils/PendingTask.ts b/language-web/src/main/js/utils/PendingTask.ts index aa2b11b0..de59a99b 100644 --- a/language-web/src/main/js/utils/PendingTask.ts +++ b/language-web/src/main/js/utils/PendingTask.ts @@ -1,6 +1,6 @@ -import { getLogger } from '../logging'; +import { getLogger } from './logger'; -const log = getLogger('PendingTask'); +const log = getLogger('utils.PendingTask'); export class PendingTask { private readonly resolveCallback: (value: T) => void; diff --git a/language-web/src/main/js/utils/logger.ts b/language-web/src/main/js/utils/logger.ts new file mode 100644 index 00000000..306d122c --- /dev/null +++ b/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()}`); +} diff --git a/language-web/src/main/js/xtext/ContentAssistService.ts b/language-web/src/main/js/xtext/ContentAssistService.ts index e9fdd12e..9cbb385f 100644 --- a/language-web/src/main/js/xtext/ContentAssistService.ts +++ b/language-web/src/main/js/xtext/ContentAssistService.ts @@ -6,8 +6,8 @@ import type { import type { ChangeSet, Transaction } from '@codemirror/state'; import escapeStringRegexp from 'escape-string-regexp'; -import { getLogger } from '../logging'; import type { UpdateService } from './UpdateService'; +import { getLogger } from '../utils/logger'; import type { IContentAssistEntry } from './xtextServiceResults'; const PROPOSALS_LIMIT = 1000; diff --git a/language-web/src/main/js/xtext/UpdateService.ts b/language-web/src/main/js/xtext/UpdateService.ts index bbe7bb62..3ab1daf9 100644 --- a/language-web/src/main/js/xtext/UpdateService.ts +++ b/language-web/src/main/js/xtext/UpdateService.ts @@ -6,8 +6,8 @@ import { import { nanoid } from 'nanoid'; import type { EditorStore } from '../editor/EditorStore'; -import { getLogger } from '../logging'; import type { XtextWebSocketClient } from './XtextWebSocketClient'; +import { getLogger } from '../utils/logger'; import { PendingTask } from '../utils/PendingTask'; import { Timer } from '../utils/Timer'; import { diff --git a/language-web/src/main/js/xtext/ValidationService.ts b/language-web/src/main/js/xtext/ValidationService.ts index 838aa31e..163b5535 100644 --- a/language-web/src/main/js/xtext/ValidationService.ts +++ b/language-web/src/main/js/xtext/ValidationService.ts @@ -1,8 +1,8 @@ import type { Diagnostic } from '@codemirror/lint'; import type { EditorStore } from '../editor/EditorStore'; -import { getLogger } from '../logging'; import type { UpdateService } from './UpdateService'; +import { getLogger } from '../utils/logger'; import { isValidationResult } from './xtextServiceResults'; const log = getLogger('xtext.ValidationService'); diff --git a/language-web/src/main/js/xtext/XtextClient.ts b/language-web/src/main/js/xtext/XtextClient.ts index 92bad0d3..7683a8ef 100644 --- a/language-web/src/main/js/xtext/XtextClient.ts +++ b/language-web/src/main/js/xtext/XtextClient.ts @@ -6,8 +6,8 @@ import type { Transaction } from '@codemirror/state'; import type { EditorStore } from '../editor/EditorStore'; import { ContentAssistService } from './ContentAssistService'; -import { getLogger } from '../logging'; import { UpdateService } from './UpdateService'; +import { getLogger } from '../utils/logger'; import { ValidationService } from './ValidationService'; import { XtextWebSocketClient } from './XtextWebSocketClient'; diff --git a/language-web/src/main/js/xtext/XtextWebSocketClient.ts b/language-web/src/main/js/xtext/XtextWebSocketClient.ts index 5b775500..839d6518 100644 --- a/language-web/src/main/js/xtext/XtextWebSocketClient.ts +++ b/language-web/src/main/js/xtext/XtextWebSocketClient.ts @@ -1,6 +1,6 @@ import { nanoid } from 'nanoid'; -import { getLogger } from '../logging'; +import { getLogger } from '../utils/logger'; import { PendingTask } from '../utils/PendingTask'; import { Timer } from '../utils/Timer'; import { @@ -25,7 +25,7 @@ const PING_TIMEOUT_MS = 10 * 1000; const REQUEST_TIMEOUT_MS = 1000; -const log = getLogger('XtextWebSocketClient'); +const log = getLogger('xtext.XtextWebSocketClient'); type ReconnectHandler = () => Promise; -- cgit v1.2.3-54-g00ecf