summaryrefslogtreecommitdiffhomepage
path: root/gui/src/shared
diff options
context:
space:
mode:
Diffstat (limited to 'gui/src/shared')
-rw-r--r--gui/src/shared/logging-types.ts2
-rw-r--r--gui/src/shared/logging.ts11
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}`);
+ }
+ }
+ });
}
}