Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/src/vs/platform/log/common/logService.ts
3296 views
1
/*---------------------------------------------------------------------------------------------
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
}
25
26
setLevel(level: LogLevel): void {
27
this.logger.setLevel(level);
28
}
29
30
getLevel(): LogLevel {
31
return this.logger.getLevel();
32
}
33
34
trace(message: string, ...args: any[]): void {
35
this.logger.trace(message, ...args);
36
}
37
38
debug(message: string, ...args: any[]): void {
39
this.logger.debug(message, ...args);
40
}
41
42
info(message: string, ...args: any[]): void {
43
this.logger.info(message, ...args);
44
}
45
46
warn(message: string, ...args: any[]): void {
47
this.logger.warn(message, ...args);
48
}
49
50
error(message: string | Error, ...args: any[]): void {
51
this.logger.error(message, ...args);
52
}
53
54
flush(): void {
55
this.logger.flush();
56
}
57
}
58
59