Skip to content

Commit 33b821b

Browse files
authored
1 parent c149df2 commit 33b821b

File tree

19 files changed

+36
-56
lines changed

19 files changed

+36
-56
lines changed

src/vs/code/node/sharedProcess/sharedProcessMain.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -386,7 +386,7 @@ class SharedProcessMain extends Disposable {
386386
shortGraceTime: LocalReconnectConstants.ShortGraceTime,
387387
scrollback: configurationService.getValue<number>(TerminalSettingId.PersistentSessionScrollback) ?? 100
388388
},
389-
localize('ptyHost', "Pty Host"),
389+
false,
390390
configurationService,
391391
environmentService,
392392
logService,

src/vs/platform/log/common/log.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
import { toErrorMessage } from 'vs/base/common/errorMessage';
77
import { Emitter, Event } from 'vs/base/common/event';
8+
import { hash } from 'vs/base/common/hash';
89
import { Disposable, IDisposable } from 'vs/base/common/lifecycle';
910
import { ResourceMap } from 'vs/base/common/map';
1011
import { isWindows } from 'vs/base/common/platform';
@@ -587,18 +588,17 @@ export abstract class AbstractLoggerService extends Disposable implements ILogge
587588
return this.getLoggerEntry(resourceOrId)?.logger;
588589
}
589590

590-
createLogger(resource: URI, options?: ILoggerOptions): ILogger;
591-
createLogger(id: string, options?: ILoggerOptions): ILogger;
592591
createLogger(idOrResource: URI | string, options?: ILoggerOptions): ILogger {
593592
const resource = this.toResource(idOrResource);
593+
const id = isString(idOrResource) ? idOrResource : (options?.id ?? hash(resource.toString()).toString(16));
594594
let logger = this._loggers.get(resource)?.logger;
595595
const logLevel = options?.logLevel === 'always' ? LogLevel.Trace : options?.logLevel;
596596
if (!logger) {
597-
logger = this.doCreateLogger(resource, logLevel ?? this.getLogLevel(resource) ?? this.logLevel, options);
597+
logger = this.doCreateLogger(resource, logLevel ?? this.getLogLevel(resource) ?? this.logLevel, { ...options, id });
598598
}
599599
const loggerEntry: LoggerEntry = {
600600
logger,
601-
info: { resource, id: options?.id ?? resource.toString(), logLevel, name: options?.name, hidden: options?.hidden, extensionId: options?.extensionId, when: options?.when }
601+
info: { resource, id, logLevel, name: options?.name, hidden: options?.hidden, extensionId: options?.extensionId, when: options?.when }
602602
};
603603
this.registerLogger(loggerEntry.info);
604604
// TODO: @sandy081 Remove this once registerLogger can take ILogger

src/vs/platform/log/electron-main/loggerService.ts

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,17 +36,14 @@ export class LoggerMainService extends LoggerService implements ILoggerMainServi
3636

3737
private readonly loggerResourcesByWindow = new ResourceMap<number>();
3838

39-
override createLogger(resource: URI, options?: ILoggerOptions, windowId?: number): ILogger;
40-
override createLogger(id: string, options?: ILoggerOptions, windowId?: number): ILogger;
4139
override createLogger(idOrResource: URI | string, options?: ILoggerOptions, windowId?: number): ILogger {
42-
const resource = this.toResource(idOrResource);
4340
if (windowId !== undefined) {
44-
this.loggerResourcesByWindow.set(resource, windowId);
41+
this.loggerResourcesByWindow.set(this.toResource(idOrResource), windowId);
4542
}
4643
try {
47-
return super.createLogger(resource, options);
44+
return super.createLogger(idOrResource, options);
4845
} catch (error) {
49-
this.loggerResourcesByWindow.delete(resource);
46+
this.loggerResourcesByWindow.delete(this.toResource(idOrResource));
5047
throw error;
5148
}
5249
}

src/vs/platform/terminal/common/terminal.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -116,10 +116,6 @@ export const enum TerminalSettingId {
116116
SmoothScrolling = 'terminal.integrated.smoothScrolling'
117117
}
118118

119-
export const enum TerminalLogConstants {
120-
FileName = 'ptyhost'
121-
}
122-
123119
export const enum PosixShellType {
124120
PowerShell = 'pwsh',
125121
Bash = 'bash',

src/vs/platform/terminal/node/ptyHostMain.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import { LogService } from 'vs/platform/log/common/logService';
1515
import { LoggerService } from 'vs/platform/log/node/loggerService';
1616
import product from 'vs/platform/product/common/product';
1717
import { IProductService } from 'vs/platform/product/common/productService';
18-
import { IReconnectConstants, TerminalIpcChannels, TerminalLogConstants } from 'vs/platform/terminal/common/terminal';
18+
import { IReconnectConstants, TerminalIpcChannels } from 'vs/platform/terminal/common/terminal';
1919
import { HeartbeatService } from 'vs/platform/terminal/node/heartbeatService';
2020
import { PtyService } from 'vs/platform/terminal/node/ptyService';
2121

@@ -30,8 +30,9 @@ const environmentService = new NativeEnvironmentService(parseArgs(process.argv,
3030
// Logging
3131
const loggerService = new LoggerService(LogLevel.Info, environmentService.logsHome);
3232
server.registerChannel(TerminalIpcChannels.Logger, new LoggerChannel(loggerService, () => DefaultURITransformer));
33-
const logger = loggerService.createLogger(TerminalLogConstants.FileName, { name: process.env.VSCODE_PTY_LOG_NAME ?? localize('ptyHost', "Pty Host") });
34-
delete process.env.VSCODE_PTY_LOG_NAME;
33+
const isRemote = process.env.VSCODE_PTY_REMOTE === 'true';
34+
delete process.env.VSCODE_PTY_REMOTE;
35+
const logger = loggerService.createLogger(isRemote ? 'remoteptyhost' : 'ptyhost', { name: isRemote ? localize('remotePtyHost', "Pty Host (Remote)") : localize('ptyHost', "Pty Host") });
3536
const logService = new LogService(logger, [new ConsoleLogger()]);
3637

3738
const heartbeatService = new HeartbeatService();

src/vs/platform/terminal/node/ptyHostService.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ export class PtyHostService extends Disposable implements IPtyService {
7979

8080
constructor(
8181
private readonly _reconnectConstants: IReconnectConstants,
82-
private readonly loggerName: string,
82+
private readonly isRemote: boolean,
8383
@IConfigurationService private readonly _configurationService: IConfigurationService,
8484
@IEnvironmentService private readonly _environmentService: INativeEnvironmentService,
8585
@ILogService private readonly _logService: ILogService,
@@ -139,7 +139,7 @@ export class PtyHostService extends Disposable implements IPtyService {
139139
args: ['--type=ptyHost', '--logsPath', this._environmentService.logsHome.fsPath],
140140
env: {
141141
VSCODE_LAST_PTY_ID: lastPtyId,
142-
VSCODE_PTY_LOG_NAME: this.loggerName,
142+
VSCODE_PTY_REMOTE: this.isRemote,
143143
VSCODE_AMD_ENTRYPOINT: 'vs/platform/terminal/node/ptyHostMain',
144144
VSCODE_PIPE_LOGGING: 'true',
145145
VSCODE_VERBOSE_LOGGING: 'true', // transmit console logs from server to client,

src/vs/server/node/serverServices.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,6 @@ import { createURITransformer } from 'vs/workbench/api/node/uriTransformer';
6363
import { ServerConnectionToken } from 'vs/server/node/serverConnectionToken';
6464
import { ServerEnvironmentService, ServerParsedArgs } from 'vs/server/node/serverEnvironmentService';
6565
import { REMOTE_TERMINAL_CHANNEL_NAME } from 'vs/workbench/contrib/terminal/common/remoteTerminalChannel';
66-
import { RemoteExtensionLogFileName } from 'vs/workbench/services/remote/common/remoteAgentService';
6766
import { REMOTE_FILE_SYSTEM_CHANNEL_NAME } from 'vs/workbench/services/remote/common/remoteFileSystemProviderClient';
6867
import { ExtensionHostStatusService, IExtensionHostStatusService } from 'vs/server/node/extensionHostStatusService';
6968
import { IExtensionsScannerService } from 'vs/platform/extensionManagement/common/extensionsScannerService';
@@ -99,7 +98,7 @@ export async function setupServerServices(connectionToken: ServerConnectionToken
9998
services.set(ILoggerService, loggerService);
10099
socketServer.registerChannel('logger', new LoggerChannel(loggerService, (ctx: RemoteAgentConnectionContext) => getUriTransformer(ctx.remoteAuthority)));
101100

102-
const logger = loggerService.createLogger(RemoteExtensionLogFileName, { name: localize('remoteExtensionLog', "Remote Server") });
101+
const logger = loggerService.createLogger('remoteagent', { name: localize('remoteExtensionLog', "Server") });
103102
const logService = new LogService(logger, [new ServerLogger(getLogLevel(environmentService))]);
104103
services.set(ILogService, logService);
105104
setTimeout(() => cleanupOlderLogs(environmentService.logsHome.fsPath).then(null, err => logService.error(err)), 10000);
@@ -197,7 +196,7 @@ export async function setupServerServices(connectionToken: ServerConnectionToken
197196
shortGraceTime: ProtocolConstants.ReconnectionShortGraceTime,
198197
scrollback: configurationService.getValue<number>(TerminalSettingId.PersistentSessionScrollback) ?? 100
199198
},
200-
localize('ptyHost', "Remote Pty Host")
199+
true
201200
);
202201
services.set(IPtyService, ptyService);
203202

src/vs/workbench/api/common/extHost.common.services.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,12 @@ import { IExtHostSecretState, ExtHostSecretState } from 'vs/workbench/api/common
2424
import { ExtHostTelemetry, IExtHostTelemetry } from 'vs/workbench/api/common/extHostTelemetry';
2525
import { ExtHostEditorTabs, IExtHostEditorTabs } from 'vs/workbench/api/common/extHostEditorTabs';
2626
import { ExtHostLoggerService } from 'vs/workbench/api/common/extHostLoggerService';
27-
import { ILoggerService, ILogService } from 'vs/platform/log/common/log';
28-
import { ExtHostLogService } from 'vs/workbench/api/common/extHostLogService';
27+
import { ILoggerService } from 'vs/platform/log/common/log';
2928
import { ExtHostVariableResolverProviderService, IExtHostVariableResolverProvider } from 'vs/workbench/api/common/extHostVariableResolverService';
3029
import { ExtHostLocalizationService, IExtHostLocalizationService } from 'vs/workbench/api/common/extHostLocalizationService';
3130

3231
registerSingleton(IExtHostLocalizationService, ExtHostLocalizationService, InstantiationType.Delayed);
3332
registerSingleton(ILoggerService, ExtHostLoggerService, InstantiationType.Delayed);
34-
registerSingleton(ILogService, ExtHostLogService, InstantiationType.Delayed);
3533
registerSingleton(IExtHostApiDeprecationService, ExtHostApiDeprecationService, InstantiationType.Delayed);
3634
registerSingleton(IExtHostCommands, ExtHostCommands, InstantiationType.Eager);
3735
registerSingleton(IExtHostConfiguration, ExtHostConfiguration, InstantiationType.Eager);

src/vs/workbench/api/common/extHostLogService.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
* Licensed under the MIT License. See License.txt in the project root for license information.
44
*--------------------------------------------------------------------------------------------*/
55

6+
import { localize } from 'vs/nls';
67
import { ILoggerService } from 'vs/platform/log/common/log';
78
import { LogService } from 'vs/platform/log/common/logService';
89
import { IExtHostInitDataService } from 'vs/workbench/api/common/extHostInitDataService';
@@ -12,10 +13,13 @@ export class ExtHostLogService extends LogService {
1213
declare readonly _serviceBrand: undefined;
1314

1415
constructor(
16+
isWorker: boolean,
1517
@ILoggerService loggerService: ILoggerService,
1618
@IExtHostInitDataService initData: IExtHostInitDataService,
1719
) {
18-
super(loggerService.createLogger(initData.logFile, { name: initData.logName }));
20+
const id = initData.remote.isRemote ? 'remoteexthost' : isWorker ? 'workerexthost' : 'exthost';
21+
const name = initData.remote.isRemote ? localize('remote', "Extension Host (Remote)") : isWorker ? localize('worker', "Extension Host (Worker)") : localize('local', "Extension Host");
22+
super(loggerService.createLogger(id, { name }));
1923
}
2024

2125
}

src/vs/workbench/api/common/extHostOutput.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -174,8 +174,9 @@ export class ExtHostOutputService implements ExtHostOutputServiceShape {
174174

175175
private async doCreateLogOutputChannel(name: string, logLevel: LogLevel | undefined, extension: IExtensionDescription): Promise<ExtHostLogOutputChannel> {
176176
const extensionLogDir = await this.createExtensionLogDirectory(extension);
177-
const file = this.extHostFileSystemInfo.extUri.joinPath(extensionLogDir, `${name.replace(/[\\/:\*\?"<>\|]/g, '')}.log`);
178-
const id = file.toString();
177+
const fileName = name.replace(/[\\/:\*\?"<>\|]/g, '');
178+
const file = this.extHostFileSystemInfo.extUri.joinPath(extensionLogDir, `${fileName}.log`);
179+
const id = `${extension.identifier.value}.${fileName}`;
179180
const logger = this.loggerService.createLogger(file, { id, name, logLevel, extensionId: extension.identifier.value });
180181
return new ExtHostLogOutputChannel(id, name, logger, this.proxy, extension);
181182
}

0 commit comments

Comments
 (0)