diff options
Diffstat (limited to 'packages/main/src/utils')
-rw-r--r-- | packages/main/src/utils/logging.ts | 28 |
1 files changed, 22 insertions, 6 deletions
diff --git a/packages/main/src/utils/logging.ts b/packages/main/src/utils/logging.ts index 66f9068..9f1133f 100644 --- a/packages/main/src/utils/logging.ts +++ b/packages/main/src/utils/logging.ts | |||
@@ -18,16 +18,32 @@ | |||
18 | * SPDX-License-Identifier: AGPL-3.0-only | 18 | * SPDX-License-Identifier: AGPL-3.0-only |
19 | */ | 19 | */ |
20 | 20 | ||
21 | import consola, { BasicReporter, Consola } from 'consola'; | 21 | import loglevel, { Logger } from 'loglevel'; |
22 | import prefix from 'loglevel-plugin-prefix'; | ||
22 | 23 | ||
23 | const isDevelopment = import.meta.env.MODE === 'development'; | 24 | const isDevelopment = import.meta.env.MODE === 'development'; |
24 | 25 | ||
25 | if (isDevelopment) { | 26 | if (isDevelopment) { |
26 | // No fancy console in dev mode. | 27 | loglevel.enableAll(); |
27 | consola.setReporters([new BasicReporter()]); | ||
28 | consola.level = 4; | ||
29 | } | 28 | } |
30 | 29 | ||
31 | export function getLogger(loggerName: string): Consola { | 30 | prefix.reg(loglevel); |
32 | return consola.withTag(`sophie:${loggerName}`); | 31 | prefix.apply(loglevel, { |
32 | format(level, name, timestamp) { | ||
33 | let shortName = 'global'; | ||
34 | if (name !== undefined) { | ||
35 | const nameSegments = name.split(':'); | ||
36 | const lastSegment = nameSegments.pop(); | ||
37 | shortName = [...nameSegments.map((segment) => segment[0]), lastSegment].join(':'); | ||
38 | } | ||
39 | if (isDevelopment) { | ||
40 | // `watch.js` already appends timestamps. | ||
41 | return `${level} (${shortName})`; | ||
42 | } | ||
43 | return `[${timestamp}] ${level} (${shortName})`; | ||
44 | }, | ||
45 | }); | ||
46 | |||
47 | export function getLogger(loggerName: string): Logger { | ||
48 | return loglevel.getLogger(`sophie:${loggerName}`); | ||
33 | } | 49 | } |