1
>
/*---------------------------------------------------------------------------------------------
logService.ts
2
>
* Copyright (c) Microsoft Corporation. All rights reserved.
3
>
* Licensed under the MIT License. See License.txt in the project root for license information.
4
>
*--------------------------------------------------------------------------------------------*/
5
>
6
>
import { Disposable } from '../../../base/common/lifecycle.js';
7
>
import { Event } from '../../../base/common/event.js';
8
>
import { ILogger, ILogService, LogLevel, MultiplexLogger } from './log.js';
9
>
10
>
export class LogService extends Disposable implements ILogService {
11
>
12
>
declare readonly _serviceBrand: undefined;
13
>
14
>
private readonly logger: ILogger;
15
>
16
>
constructor(primaryLogger: ILogger, otherLoggers: ILogger[] = []) {
17
>
super();
18
>
this.logger = new MultiplexLogger([primaryLogger, ...otherLoggers]);
19
>
this._register(primaryLogger.onDidChangeLogLevel(level => this.setLevel(level)));
20
>
}
21
>
22
>
get onDidChangeLogLevel(): Event<LogLevel> {
23
return this.logger.onDidChangeLogLevel;
24
}
26
>
setLevel(level: LogLevel): void {
27
this.logger.setLevel(level);
28
}
30
>
getLevel(): LogLevel {
31
return this.logger.getLevel();
32
}
34
>
trace(message: string, ...args: unknown[]): void {
35
this.logger.trace(message, ...args);
36
}
38
>
debug(message: string, ...args: unknown[]): void {
39
this.logger.debug(message, ...args);
40
}
42
>
info(message: string, ...args: unknown[]): void {
43
this.logger.info(message, ...args);
44
}
46
>
warn(message: string, ...args: unknown[]): void {
47
this.logger.warn(message, ...args);
48
}
50
>
error(message: string | Error, ...args: unknown[]): void {
51
this.logger.error(message, ...args);
52
}
54
>
flush(): void {
55
this.logger.flush();
56
}