Path: blob/main/src/vs/workbench/api/node/extHostLoggerService.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 { ILogger, ILoggerOptions, ILoggerResource, LogLevel } from '../../../platform/log/common/log.js';6import { URI } from '../../../base/common/uri.js';7import { ExtHostLoggerService as BaseExtHostLoggerService } from '../common/extHostLoggerService.js';8import { Schemas } from '../../../base/common/network.js';9import { SpdLogLogger } from '../../../platform/log/node/spdlogLog.js';10import { generateUuid } from '../../../base/common/uuid.js';1112export class ExtHostLoggerService extends BaseExtHostLoggerService {1314protected override doCreateLogger(resource: URI, logLevel: LogLevel, options?: ILoggerOptions): ILogger {15if (resource.scheme === Schemas.file) {16/* Create the logger in the Extension Host process to prevent loggers (log, output channels...) traffic over IPC */17return new SpdLogLogger(options?.name || generateUuid(), resource.fsPath, !options?.donotRotate, !!options?.donotUseFormatters, logLevel);18}19return super.doCreateLogger(resource, logLevel, options);20}2122override registerLogger(resource: ILoggerResource): void {23super.registerLogger(resource);24this._proxy.$registerLogger(resource);25}2627override deregisterLogger(resource: URI): void {28super.deregisterLogger(resource);29this._proxy.$deregisterLogger(resource);30}3132}333435