diff --git a/src/vs/workbench/api/node/extHostLogService.ts b/src/vs/workbench/api/common/extHostLogService.ts similarity index 89% rename from src/vs/workbench/api/node/extHostLogService.ts rename to src/vs/workbench/api/common/extHostLogService.ts index 6e959b7644e..ec17b2297b3 100644 --- a/src/vs/workbench/api/node/extHostLogService.ts +++ b/src/vs/workbench/api/common/extHostLogService.ts @@ -5,12 +5,15 @@ import { join } from 'vs/base/common/path'; import { ILogService, DelegatedLogService, LogLevel } from 'vs/platform/log/common/log'; -import { createSpdLogService } from 'vs/platform/log/node/spdlogService'; import { ExtHostLogServiceShape } from 'vs/workbench/api/common/extHost.protocol'; import { ExtensionHostLogFileName } from 'vs/workbench/services/extensions/common/extensions'; import { URI } from 'vs/base/common/uri'; import { ExtensionIdentifier } from 'vs/platform/extensions/common/extensions'; +export interface ILogServiceCreateFn { + (): ILogService; +} + export class ExtHostLogService extends DelegatedLogService implements ILogService, ExtHostLogServiceShape { private _logsPath: string; @@ -19,8 +22,9 @@ export class ExtHostLogService extends DelegatedLogService implements ILogServic constructor( logLevel: LogLevel, logsPath: string, + factory: ILogServiceCreateFn ) { - super(createSpdLogService(ExtensionHostLogFileName, logLevel, logsPath)); + super(factory()); this._logsPath = logsPath; this.logFile = URI.file(join(logsPath, `${ExtensionHostLogFileName}.log`)); } diff --git a/src/vs/workbench/api/node/extHost.api.impl.ts b/src/vs/workbench/api/node/extHost.api.impl.ts index 216d6c64bd2..a1833f63f7d 100644 --- a/src/vs/workbench/api/node/extHost.api.impl.ts +++ b/src/vs/workbench/api/node/extHost.api.impl.ts @@ -37,7 +37,7 @@ import { ExtHostFileSystemEventService } from 'vs/workbench/api/common/extHostFi import { ExtHostHeapService } from 'vs/workbench/api/common/extHostHeapService'; import { ExtHostLanguageFeatures, ISchemeTransformer } from 'vs/workbench/api/common/extHostLanguageFeatures'; import { ExtHostLanguages } from 'vs/workbench/api/common/extHostLanguages'; -import { ExtHostLogService } from 'vs/workbench/api/node/extHostLogService'; +import { ExtHostLogService } from 'vs/workbench/api/common/extHostLogService'; import { ExtHostMessageService } from 'vs/workbench/api/common/extHostMessageService'; import { ExtHostOutputService } from 'vs/workbench/api/common/extHostOutput'; import { LogOutputChannelFactory } from 'vs/workbench/api/node/extHostOutputService'; diff --git a/src/vs/workbench/api/node/extHostExtensionService.ts b/src/vs/workbench/api/node/extHostExtensionService.ts index 2f0269fe22e..29c99553e0c 100644 --- a/src/vs/workbench/api/node/extHostExtensionService.ts +++ b/src/vs/workbench/api/node/extHostExtensionService.ts @@ -16,7 +16,7 @@ import { createApiFactory, IExtensionApiFactory, NodeModuleRequireInterceptor, V import { ExtHostExtensionServiceShape, IEnvironment, IInitData, IMainContext, MainContext, MainThreadExtensionServiceShape, MainThreadTelemetryShape, MainThreadWorkspaceShape, IStaticWorkspaceData } from 'vs/workbench/api/common/extHost.protocol'; import { ExtHostConfiguration } from 'vs/workbench/api/common/extHostConfiguration'; import { ActivatedExtension, EmptyExtension, ExtensionActivatedByAPI, ExtensionActivatedByEvent, ExtensionActivationReason, ExtensionActivationTimes, ExtensionActivationTimesBuilder, ExtensionsActivator, IExtensionAPI, IExtensionContext, IExtensionMemento, IExtensionModule, HostExtension } from 'vs/workbench/api/common/extHostExtensionActivator'; -import { ExtHostLogService } from 'vs/workbench/api/node/extHostLogService'; +import { ExtHostLogService } from 'vs/workbench/api/common/extHostLogService'; import { ExtHostStorage } from 'vs/workbench/api/common/extHostStorage'; import { ExtHostWorkspace } from 'vs/workbench/api/common/extHostWorkspace'; import { ExtensionActivationError } from 'vs/workbench/services/extensions/common/extensions'; diff --git a/src/vs/workbench/services/extensions/node/extensionHostMain.ts b/src/vs/workbench/services/extensions/node/extensionHostMain.ts index 888ac0e0c19..ecfc054d3eb 100644 --- a/src/vs/workbench/services/extensions/node/extensionHostMain.ts +++ b/src/vs/workbench/services/extensions/node/extensionHostMain.ts @@ -13,11 +13,13 @@ import { IMessagePassingProtocol } from 'vs/base/parts/ipc/common/ipc'; import { IEnvironment, IInitData, MainContext, MainThreadConsoleShape } from 'vs/workbench/api/common/extHost.protocol'; import { ExtHostConfiguration } from 'vs/workbench/api/common/extHostConfiguration'; import { ExtHostExtensionService } from 'vs/workbench/api/node/extHostExtensionService'; -import { ExtHostLogService } from 'vs/workbench/api/node/extHostLogService'; +import { ExtHostLogService } from 'vs/workbench/api/common/extHostLogService'; import { ExtHostWorkspace } from 'vs/workbench/api/common/extHostWorkspace'; import { RPCProtocol } from 'vs/workbench/services/extensions/common/rpcProtocol'; import { IExtensionDescription } from 'vs/platform/extensions/common/extensions'; import { withNullAsUndefined } from 'vs/base/common/types'; +import { ExtensionHostLogFileName } from 'vs/workbench/services/extensions/common/extensions'; +import { createSpdLogService } from 'vs/platform/log/node/spdlogService'; // we don't (yet) throw when extensions parse // uris that have no scheme @@ -70,7 +72,7 @@ export class ExtensionHostMain { this._patchPatchedConsole(rpcProtocol.getProxy(MainContext.MainThreadConsole)); // services - this._extHostLogService = new ExtHostLogService(initData.logLevel, initData.logsLocation.fsPath); + this._extHostLogService = new ExtHostLogService(initData.logLevel, initData.logsLocation.fsPath, () => createSpdLogService(ExtensionHostLogFileName, initData.logLevel, initData.logsLocation.fsPath)); this.disposables.push(this._extHostLogService); this._searchRequestIdProvider = new Counter(); diff --git a/src/vs/workbench/services/extensions/node/proxyResolver.ts b/src/vs/workbench/services/extensions/node/proxyResolver.ts index 07edeb33432..37157f6fdae 100644 --- a/src/vs/workbench/services/extensions/node/proxyResolver.ts +++ b/src/vs/workbench/services/extensions/node/proxyResolver.ts @@ -17,7 +17,7 @@ import { IExtHostWorkspaceProvider } from 'vs/workbench/api/common/extHostWorksp import { ExtHostConfigProvider } from 'vs/workbench/api/common/extHostConfiguration'; import { ProxyAgent } from 'vscode-proxy-agent'; import { MainThreadTelemetryShape } from 'vs/workbench/api/common/extHost.protocol'; -import { ExtHostLogService } from 'vs/workbench/api/node/extHostLogService'; +import { ExtHostLogService } from 'vs/workbench/api/common/extHostLogService'; import { toErrorMessage } from 'vs/base/common/errorMessage'; import { ExtHostExtensionService } from 'vs/workbench/api/node/extHostExtensionService'; import { URI } from 'vs/base/common/uri';