Skip to content

Commit 693848c

Browse files
authored
* Fix microsoft#181358 * remove cyclic dep
1 parent ba7435e commit 693848c

File tree

1 file changed

+25
-23
lines changed

1 file changed

+25
-23
lines changed

src/vs/workbench/browser/web.main.ts

Lines changed: 25 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,6 @@ import { SignService } from 'vs/platform/sign/browser/signService';
3535
import { IWorkbenchConstructionOptions, IWorkbench, ITunnel } from 'vs/workbench/browser/web.api';
3636
import { BrowserStorageService } from 'vs/workbench/services/storage/browser/storageService';
3737
import { IStorageService } from 'vs/platform/storage/common/storage';
38-
import { BufferLogger } from 'vs/platform/log/common/bufferLog';
39-
import { FileLoggerService } from 'vs/platform/log/common/fileLog';
4038
import { toLocalISOString } from 'vs/base/common/date';
4139
import { isWorkspaceToOpen, isFolderToOpen } from 'vs/platform/window/common/window';
4240
import { getSingleFolderWorkspaceIdentifier, getWorkspaceIdentifier } from 'vs/workbench/services/workspaces/browser/workspaces';
@@ -90,6 +88,8 @@ import { VSBuffer } from 'vs/base/common/buffer';
9088
import { IStoredWorkspace } from 'vs/platform/workspaces/common/workspaces';
9189
import { UserDataProfileInitializer } from 'vs/workbench/services/userDataProfile/browser/userDataProfileInit';
9290
import { UserDataSyncInitializer } from 'vs/workbench/services/userDataSync/browser/userDataSyncInit';
91+
import { BufferLogger } from 'vs/platform/log/common/bufferLog';
92+
import { FileLoggerService } from 'vs/platform/log/common/fileLog';
9393

9494
export class BrowserMain extends Disposable {
9595

@@ -247,16 +247,32 @@ export class BrowserMain extends Disposable {
247247
const environmentService = new BrowserWorkbenchEnvironmentService(workspace.id, logsPath, this.configuration, productService);
248248
serviceCollection.set(IBrowserWorkbenchEnvironmentService, environmentService);
249249

250-
// Log
251-
const logLevel = getLogLevel(environmentService);
252-
const bufferLogger = new BufferLogger(logLevel);
253-
const otherLoggers: ILogger[] = [new ConsoleLogger(logLevel)];
250+
// Files
251+
const fileLogger = new BufferLogger();
252+
const fileService = this._register(new FileService(fileLogger));
253+
serviceCollection.set(IWorkbenchFileService, fileService);
254+
255+
// Logger
256+
const loggerService = new FileLoggerService(getLogLevel(environmentService), logsPath, fileService);
257+
serviceCollection.set(ILoggerService, loggerService);
258+
259+
// Log Service
260+
const otherLoggers: ILogger[] = [new ConsoleLogger(loggerService.getLogLevel())];
254261
if (environmentService.isExtensionDevelopment && !!environmentService.extensionTestsLocationURI) {
255-
otherLoggers.push(new ConsoleLogInAutomationLogger(logLevel));
262+
otherLoggers.push(new ConsoleLogInAutomationLogger(loggerService.getLogLevel()));
256263
}
257-
const logService = new LogService(bufferLogger, otherLoggers);
264+
const logger = loggerService.createLogger(environmentService.logFile, { id: windowLogId, name: localize('rendererLog', "Window") });
265+
const logService = new LogService(logger, otherLoggers);
258266
serviceCollection.set(ILogService, logService);
259267

268+
// Set the logger of the fileLogger after the log service is ready.
269+
// This is to avoid cyclic dependency
270+
fileLogger.logger = logService;
271+
272+
// Register File System Providers depending on IndexedDB support
273+
// Register them early because they are needed for the profiles initialization
274+
await this.registerIndexedDBFileSystemProviders(environmentService, fileService, logService, loggerService, logsPath);
275+
260276
// Remote
261277
const connectionToken = environmentService.options.connectionToken || getCookieValue(connectionTokenCookieName);
262278
const remoteAuthorityResolverService = new RemoteAuthorityResolverService(!environmentService.expectsResolverExtension, connectionToken, this.configuration.resourceUriProvider, productService, logService);
@@ -277,18 +293,6 @@ export class BrowserMain extends Disposable {
277293
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
278294

279295

280-
// Files
281-
const fileService = this._register(new FileService(logService));
282-
serviceCollection.set(IWorkbenchFileService, fileService);
283-
284-
// Logger
285-
const loggerService = new FileLoggerService(logLevel, logsPath, fileService);
286-
serviceCollection.set(ILoggerService, loggerService);
287-
288-
// Register File System Providers depending on IndexedDB support
289-
// Register them early because they are needed for the profiles initialization
290-
await this.registerIndexedDBFileSystemProviders(environmentService, fileService, bufferLogger, logService, loggerService, logsPath);
291-
292296
// URI Identity
293297
const uriIdentityService = new UriIdentityService(fileService);
294298
serviceCollection.set(IUriIdentityService, uriIdentityService);
@@ -411,7 +415,7 @@ export class BrowserMain extends Disposable {
411415
}
412416
}
413417

414-
private async registerIndexedDBFileSystemProviders(environmentService: IWorkbenchEnvironmentService, fileService: IWorkbenchFileService, bufferLogger: BufferLogger, logService: ILogService, loggerService: ILoggerService, logsPath: URI): Promise<void> {
418+
private async registerIndexedDBFileSystemProviders(environmentService: IWorkbenchEnvironmentService, fileService: IWorkbenchFileService, logService: ILogService, loggerService: ILoggerService, logsPath: URI): Promise<void> {
415419
// IndexedDB is used for logging and user data
416420
let indexedDB: IndexedDB | undefined;
417421
const userDataStore = 'vscode-userdata-store';
@@ -435,8 +439,6 @@ export class BrowserMain extends Disposable {
435439
fileService.registerProvider(logsPath.scheme, new InMemoryFileSystemProvider());
436440
}
437441

438-
bufferLogger.logger = loggerService.createLogger(environmentService.logFile, { id: windowLogId, name: localize('rendererLog', "Window") });
439-
440442
// User data
441443
let userDataProvider;
442444
if (indexedDB) {

0 commit comments

Comments
 (0)