Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/src/vs/workbench/api/node/extHostLoggerService.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 { ILogger, ILoggerOptions, ILoggerResource, LogLevel } from '../../../platform/log/common/log.js';
7
import { URI } from '../../../base/common/uri.js';
8
import { ExtHostLoggerService as BaseExtHostLoggerService } from '../common/extHostLoggerService.js';
9
import { Schemas } from '../../../base/common/network.js';
10
import { SpdLogLogger } from '../../../platform/log/node/spdlogLog.js';
11
import { generateUuid } from '../../../base/common/uuid.js';
12
13
export class ExtHostLoggerService extends BaseExtHostLoggerService {
14
15
protected override doCreateLogger(resource: URI, logLevel: LogLevel, options?: ILoggerOptions): ILogger {
16
if (resource.scheme === Schemas.file) {
17
/* Create the logger in the Extension Host process to prevent loggers (log, output channels...) traffic over IPC */
18
return new SpdLogLogger(options?.name || generateUuid(), resource.fsPath, !options?.donotRotate, !!options?.donotUseFormatters, logLevel);
19
}
20
return super.doCreateLogger(resource, logLevel, options);
21
}
22
23
override registerLogger(resource: ILoggerResource): void {
24
super.registerLogger(resource);
25
this._proxy.$registerLogger(resource);
26
}
27
28
override deregisterLogger(resource: URI): void {
29
super.deregisterLogger(resource);
30
this._proxy.$deregisterLogger(resource);
31
}
32
33
}
34
35