Path: blob/main/src/vs/workbench/services/log/electron-browser/logService.ts
3296 views
/*---------------------------------------------------------------------------------------------1* Copyright (c) Microsoft Corporation. All rights reserved.2* Licensed under the MIT License. See License.txt in the project root for license information.3*--------------------------------------------------------------------------------------------*/45import { ConsoleLogger, ILogger } from '../../../../platform/log/common/log.js';6import { INativeWorkbenchEnvironmentService } from '../../environment/electron-browser/environmentService.js';7import { LoggerChannelClient } from '../../../../platform/log/common/logIpc.js';8import { DisposableStore } from '../../../../base/common/lifecycle.js';9import { windowLogGroup, windowLogId } from '../common/logConstants.js';10import { LogService } from '../../../../platform/log/common/logService.js';1112export class NativeLogService extends LogService {1314constructor(loggerService: LoggerChannelClient, environmentService: INativeWorkbenchEnvironmentService) {1516const disposables = new DisposableStore();1718const fileLogger = disposables.add(loggerService.createLogger(environmentService.logFile, { id: windowLogId, name: windowLogGroup.name, group: windowLogGroup }));1920let consoleLogger: ILogger;21if (environmentService.isExtensionDevelopment && !!environmentService.extensionTestsLocationURI) {22// Extension development test CLI: forward everything to main side23consoleLogger = loggerService.createConsoleMainLogger();24} else {25// Normal mode: Log to console26consoleLogger = new ConsoleLogger(fileLogger.getLevel());27}2829super(fileLogger, [consoleLogger]);3031this._register(disposables);32}33}343536