Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/src/vs/workbench/services/log/electron-browser/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 { ConsoleLogger, ILogger } from '../../../../platform/log/common/log.js';
7
import { INativeWorkbenchEnvironmentService } from '../../environment/electron-browser/environmentService.js';
8
import { LoggerChannelClient } from '../../../../platform/log/common/logIpc.js';
9
import { DisposableStore } from '../../../../base/common/lifecycle.js';
10
import { windowLogGroup, windowLogId } from '../common/logConstants.js';
11
import { LogService } from '../../../../platform/log/common/logService.js';
12
13
export class NativeLogService extends LogService {
14
15
constructor(loggerService: LoggerChannelClient, environmentService: INativeWorkbenchEnvironmentService) {
16
17
const disposables = new DisposableStore();
18
19
const fileLogger = disposables.add(loggerService.createLogger(environmentService.logFile, { id: windowLogId, name: windowLogGroup.name, group: windowLogGroup }));
20
21
let consoleLogger: ILogger;
22
if (environmentService.isExtensionDevelopment && !!environmentService.extensionTestsLocationURI) {
23
// Extension development test CLI: forward everything to main side
24
consoleLogger = loggerService.createConsoleMainLogger();
25
} else {
26
// Normal mode: Log to console
27
consoleLogger = new ConsoleLogger(fileLogger.getLevel());
28
}
29
30
super(fileLogger, [consoleLogger]);
31
32
this._register(disposables);
33
}
34
}
35
36