Skip to content

Commit

Permalink
log network requests in the process specific log (#227944)
Browse files Browse the repository at this point in the history
  • Loading branch information
sandy081 authored Sep 9, 2024
1 parent 56d0507 commit 5c97ba8
Show file tree
Hide file tree
Showing 12 changed files with 23 additions and 84 deletions.
6 changes: 1 addition & 5 deletions src/vs/code/electron-main/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -211,11 +211,7 @@ class CodeMain {
services.set(ILifecycleMainService, new SyncDescriptor(LifecycleMainService, undefined, false));

// Request
const networkLogger = loggerService.createLogger('network-main', {
name: localize('network-main', "Network (Main)"),
hidden: true
});
services.set(IRequestService, new SyncDescriptor(RequestService, [networkLogger], true));
services.set(IRequestService, new SyncDescriptor(RequestService, undefined, true));

// Themes
services.set(IThemeMainService, new SyncDescriptor(ThemeMainService));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -270,11 +270,7 @@ class SharedProcessMain extends Disposable implements IClientConnectionFilter {
]);

// Request
const networkLogger = loggerService.createLogger('network-shared', {
name: localize('network-shared', "Network (Shared)"),
hidden: true,
});
const requestService = new RequestService(networkLogger, configurationService, environmentService, logService);
const requestService = new RequestService(configurationService, environmentService, logService);
services.set(IRequestService, requestService);

// Checksum
Expand Down
4 changes: 2 additions & 2 deletions src/vs/code/node/cliProcessMain.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ import { InstantiationService } from '../../platform/instantiation/common/instan
import { ServiceCollection } from '../../platform/instantiation/common/serviceCollection.js';
import { ILanguagePackService } from '../../platform/languagePacks/common/languagePacks.js';
import { NativeLanguagePackService } from '../../platform/languagePacks/node/languagePacks.js';
import { ConsoleLogger, getLogLevel, ILogger, ILoggerService, ILogService, LogLevel, NullLogger } from '../../platform/log/common/log.js';
import { ConsoleLogger, getLogLevel, ILogger, ILoggerService, ILogService, LogLevel } from '../../platform/log/common/log.js';
import { FilePolicyService } from '../../platform/policy/common/filePolicyService.js';
import { IPolicyService, NullPolicyService } from '../../platform/policy/common/policy.js';
import { NativePolicyService } from '../../platform/policy/node/nativePolicyService.js';
Expand Down Expand Up @@ -195,7 +195,7 @@ class CliMain extends Disposable {
services.set(IUriIdentityService, new UriIdentityService(fileService));

// Request
const requestService = new RequestService(new NullLogger(), configurationService, environmentService, logService);
const requestService = new RequestService(configurationService, environmentService, logService);
services.set(IRequestService, requestService);

// Download Service
Expand Down
12 changes: 6 additions & 6 deletions src/vs/platform/request/common/request.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import { IHeaders, IRequestContext, IRequestOptions } from '../../../base/parts/
import { localize } from '../../../nls.js';
import { ConfigurationScope, Extensions, IConfigurationNode, IConfigurationRegistry } from '../../configuration/common/configurationRegistry.js';
import { createDecorator } from '../../instantiation/common/instantiation.js';
import { ILogger } from '../../log/common/log.js';
import { ILogService } from '../../log/common/log.js';
import { Registry } from '../../registry/common/platform.js';

export const IRequestService = createDecorator<IRequestService>('requestService');
Expand Down Expand Up @@ -70,19 +70,19 @@ export abstract class AbstractRequestService extends Disposable implements IRequ

private counter = 0;

constructor(protected readonly logger: ILogger) {
constructor(protected readonly logService: ILogService) {
super();
}

protected async logAndRequest(options: IRequestOptions, request: () => Promise<IRequestContext>): Promise<IRequestContext> {
const prefix = `#${++this.counter}: ${options.url}`;
this.logger.info(`${prefix} - begin`, options.type, new LoggableHeaders(options.headers ?? {}));
const prefix = `[network] #${++this.counter}: ${options.url}`;
this.logService.trace(`${prefix} - begin`, options.type, new LoggableHeaders(options.headers ?? {}));
try {
const result = await request();
this.logger.info(`${prefix} - end`, options.type, result.res.statusCode, result.res.headers);
this.logService.trace(`${prefix} - end`, options.type, result.res.statusCode, result.res.headers);
return result;
} catch (error) {
this.logger.error(`${prefix} - error`, options.type, getErrorMessage(error));
this.logService.error(`${prefix} - error`, options.type, getErrorMessage(error));
throw error;
}
}
Expand Down
7 changes: 3 additions & 4 deletions src/vs/platform/request/node/requestService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import { IRequestContext, IRequestOptions } from '../../../base/parts/request/co
import { IConfigurationService } from '../../configuration/common/configuration.js';
import { INativeEnvironmentService } from '../../environment/common/environment.js';
import { getResolvedShellEnv } from '../../shell/node/shellEnv.js';
import { ILogService, ILogger } from '../../log/common/log.js';
import { ILogService } from '../../log/common/log.js';
import { AbstractRequestService, AuthInfo, Credentials, IRequestService } from '../common/request.js';
import { Agent, getProxyAgent } from './proxy.js';
import { createGunzip } from 'zlib';
Expand Down Expand Up @@ -52,12 +52,11 @@ export class RequestService extends AbstractRequestService implements IRequestSe
private shellEnvErrorLogged?: boolean;

constructor(
logger: ILogger,
@IConfigurationService private readonly configurationService: IConfigurationService,
@INativeEnvironmentService private readonly environmentService: INativeEnvironmentService,
@ILogService private readonly logService: ILogService,
@ILogService logService: ILogService,
) {
super(logger);
super(logService);
this.configure();
this._register(configurationService.onDidChangeConfiguration(e => {
if (e.affectsConfiguration('http')) {
Expand Down
6 changes: 1 addition & 5 deletions src/vs/server/node/serverServices.ts
Original file line number Diff line number Diff line change
Expand Up @@ -148,11 +148,7 @@ export async function setupServerServices(connectionToken: ServerConnectionToken
services.set(IExtensionHostStatusService, extensionHostStatusService);

// Request
const networkLogger = loggerService.createLogger('network-server', {
name: localize('network-server', "Network (Server)"),
hidden: true
});
const requestService = new RequestService(networkLogger, configurationService, environmentService, logService);
const requestService = new RequestService(configurationService, environmentService, logService);
services.set(IRequestService, requestService);

let oneDsAppender: ITelemetryAppender = NullAppender;
Expand Down
2 changes: 1 addition & 1 deletion src/vs/workbench/browser/web.main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -396,7 +396,7 @@ export class BrowserMain extends Disposable {
this._register(workspaceTrustManagementService.onDidChangeTrust(() => configurationService.updateWorkspaceTrust(workspaceTrustManagementService.isWorkspaceTrusted())));

// Request Service
const requestService = new BrowserRequestService(remoteAgentService, configurationService, loggerService);
const requestService = new BrowserRequestService(remoteAgentService, configurationService, logService);
serviceCollection.set(IRequestService, requestService);

// Userdata Sync Store Management Service
Expand Down
37 changes: 0 additions & 37 deletions src/vs/workbench/contrib/request/common/request.contribution.ts

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import { RequestService } from '../../../../../platform/request/node/requestServ
import { TestConfigurationService } from '../../../../../platform/configuration/test/common/testConfigurationService.js';
// eslint-disable-next-line local/code-import-patterns
import '../../../../workbench.desktop.main.js';
import { NullLogger, NullLogService } from '../../../../../platform/log/common/log.js';
import { NullLogService } from '../../../../../platform/log/common/log.js';
import { mock } from '../../../../../base/test/common/mock.js';
import { INativeEnvironmentService } from '../../../../../platform/environment/common/environment.js';
import { FileAccess } from '../../../../../base/common/network.js';
Expand Down Expand Up @@ -91,7 +91,7 @@ suite('Color Registry', function () {

const docUrl = 'https://raw.githubusercontent.com/microsoft/vscode-docs/main/api/references/theme-color.md';

const reqContext = await new RequestService(new NullLogger(), new TestConfigurationService(), environmentService, new NullLogService()).request({ url: docUrl }, CancellationToken.None);
const reqContext = await new RequestService(new TestConfigurationService(), environmentService, new NullLogService()).request({ url: docUrl }, CancellationToken.None);
const content = (await asTextOrError(reqContext))!;

const expression = /-\s*\`([\w\.]+)\`: (.*)/g;
Expand Down
10 changes: 3 additions & 7 deletions src/vs/workbench/services/request/browser/requestService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,7 @@ import { ServicesAccessor } from '../../../../editor/browser/editorExtensions.js
import { CommandsRegistry } from '../../../../platform/commands/common/commands.js';
import { AbstractRequestService, AuthInfo, Credentials, IRequestService } from '../../../../platform/request/common/request.js';
import { request } from '../../../../base/parts/request/browser/request.js';
import { ILoggerService } from '../../../../platform/log/common/log.js';
import { localize } from '../../../../nls.js';
import { ILogService } from '../../../../platform/log/common/log.js';

export class BrowserRequestService extends AbstractRequestService implements IRequestService {

Expand All @@ -22,12 +21,9 @@ export class BrowserRequestService extends AbstractRequestService implements IRe
constructor(
@IRemoteAgentService private readonly remoteAgentService: IRemoteAgentService,
@IConfigurationService private readonly configurationService: IConfigurationService,
@ILoggerService loggerService: ILoggerService,
@ILogService logService: ILogService,
) {
super(loggerService.createLogger('network-window', {
name: localize('network-window', "Network (Window)"),
hidden: true
}));
super(logService);
}

async request(options: IRequestOptions, token: CancellationToken): Promise<IRequestContext> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,7 @@ import { INativeHostService } from '../../../../platform/native/common/native.js
import { IRequestContext, IRequestOptions } from '../../../../base/parts/request/common/request.js';
import { CancellationToken } from '../../../../base/common/cancellation.js';
import { request } from '../../../../base/parts/request/browser/request.js';
import { ILoggerService } from '../../../../platform/log/common/log.js';
import { localize } from '../../../../nls.js';
import { ILogService } from '../../../../platform/log/common/log.js';

export class NativeRequestService extends AbstractRequestService implements IRequestService {

Expand All @@ -20,12 +19,9 @@ export class NativeRequestService extends AbstractRequestService implements IReq
constructor(
@INativeHostService private readonly nativeHostService: INativeHostService,
@IConfigurationService private readonly configurationService: IConfigurationService,
@ILoggerService loggerService: ILoggerService,
@ILogService logService: ILogService,
) {
super(loggerService.createLogger('network-window', {
name: localize('network-window', "Network (Window)"),
hidden: true
}));
super(logService);
}

async request(options: IRequestOptions, token: CancellationToken): Promise<IRequestContext> {
Expand Down
3 changes: 0 additions & 3 deletions src/vs/workbench/workbench.common.main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -398,7 +398,4 @@ import './contrib/accountEntitlements/browser/accountsEntitlements.contribution.
// Synchronized Scrolling
import './contrib/scrollLocking/browser/scrollLocking.contribution.js';

// Network
import './contrib/request/common/request.contribution.js';

//#endregion

0 comments on commit 5c97ba8

Please sign in to comment.