diff options
Diffstat (limited to 'gui/src/shared')
| -rw-r--r-- | gui/src/shared/logging-types.ts | 2 | ||||
| -rw-r--r-- | gui/src/shared/logging.ts | 11 |
2 files changed, 11 insertions, 2 deletions
diff --git a/gui/src/shared/logging-types.ts b/gui/src/shared/logging-types.ts index 09bd3f66cf..8b4ff9e306 100644 --- a/gui/src/shared/logging-types.ts +++ b/gui/src/shared/logging-types.ts @@ -8,7 +8,7 @@ export enum LogLevel { export interface ILogOutput { level: LogLevel; - write(level: LogLevel, message: string): void; + write(level: LogLevel, message: string): void | Promise<void>; dispose?(): void; } diff --git a/gui/src/shared/logging.ts b/gui/src/shared/logging.ts index 48c290c9b5..43d0b271d9 100644 --- a/gui/src/shared/logging.ts +++ b/gui/src/shared/logging.ts @@ -32,7 +32,16 @@ export class Logger { private outputMessage(level: LogLevel, message: string) { this.outputs .filter((output) => level <= output.level) - .forEach((output) => output.write(level, message)); + .forEach(async (output) => { + const maybePromise = output.write(level, message); + if (maybePromise instanceof Promise) { + try { + await maybePromise; + } catch (e) { + console.error(`${output.constructor.name}.write: ${e.message}`); + } + } + }); } } |
