diff options
author | Kristóf Marussy <kristof@marussy.com> | 2021-10-30 14:36:39 +0200 |
---|---|---|
committer | Kristóf Marussy <kristof@marussy.com> | 2021-10-31 19:26:14 +0100 |
commit | def79f104999710953124c77241c95a7726791f0 (patch) | |
tree | f1096b07aa6c67d9c986df025400d8e555ca8a95 /language-web/src/main/js/utils | |
parent | feat(web): server-side content assist filtering (diff) | |
download | refinery-def79f104999710953124c77241c95a7726791f0.tar.gz refinery-def79f104999710953124c77241c95a7726791f0.tar.zst refinery-def79f104999710953124c77241c95a7726791f0.zip |
chore(web): move logger to utils/
Diffstat (limited to 'language-web/src/main/js/utils')
-rw-r--r-- | language-web/src/main/js/utils/PendingTask.ts | 4 | ||||
-rw-r--r-- | language-web/src/main/js/utils/logger.ts | 49 |
2 files changed, 51 insertions, 2 deletions
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 @@ | |||
1 | import { getLogger } from '../logging'; | 1 | import { getLogger } from './logger'; |
2 | 2 | ||
3 | const log = getLogger('PendingTask'); | 3 | const log = getLogger('utils.PendingTask'); |
4 | 4 | ||
5 | export class PendingTask<T> { | 5 | export class PendingTask<T> { |
6 | private readonly resolveCallback: (value: T) => void; | 6 | 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 @@ | |||
1 | import styles, { CSPair } from 'ansi-styles'; | ||
2 | import log from 'loglevel'; | ||
3 | import * as prefix from 'loglevel-plugin-prefix'; | ||
4 | |||
5 | const colors: Partial<Record<string, CSPair>> = { | ||
6 | TRACE: styles.magenta, | ||
7 | DEBUG: styles.cyan, | ||
8 | INFO: styles.blue, | ||
9 | WARN: styles.yellow, | ||
10 | ERROR: styles.red, | ||
11 | }; | ||
12 | |||
13 | prefix.reg(log); | ||
14 | |||
15 | if (DEBUG) { | ||
16 | log.setLevel(log.levels.DEBUG); | ||
17 | } else { | ||
18 | log.setLevel(log.levels.WARN); | ||
19 | } | ||
20 | |||
21 | if ('chrome' in window) { | ||
22 | // Only Chromium supports console ANSI escape sequences. | ||
23 | prefix.apply(log, { | ||
24 | format(level, name, timestamp) { | ||
25 | const formattedTimestamp = `${styles.gray.open}[${timestamp.toString()}]${styles.gray.close}`; | ||
26 | const levelColor = colors[level.toUpperCase()] || styles.red; | ||
27 | const formattedLevel = `${levelColor.open}${level}${levelColor.close}`; | ||
28 | const formattedName = `${styles.green.open}(${name || 'root'})${styles.green.close}`; | ||
29 | return `${formattedTimestamp} ${formattedLevel} ${formattedName}`; | ||
30 | }, | ||
31 | }); | ||
32 | } else { | ||
33 | prefix.apply(log, { | ||
34 | template: '[%t] %l (%n)', | ||
35 | }); | ||
36 | } | ||
37 | |||
38 | const appLogger = log.getLogger(PACKAGE_NAME); | ||
39 | |||
40 | appLogger.info('Version:', PACKAGE_NAME, PACKAGE_VERSION); | ||
41 | appLogger.info('Debug mode:', DEBUG); | ||
42 | |||
43 | export function getLoggerFromRoot(name: string | symbol): log.Logger { | ||
44 | return log.getLogger(name); | ||
45 | } | ||
46 | |||
47 | export function getLogger(name: string | symbol): log.Logger { | ||
48 | return getLoggerFromRoot(`${PACKAGE_NAME}.${name.toString()}`); | ||
49 | } | ||