fix(lib/vscode): update log service in server.ts
This required a bit more work. We moved a few things around and made use of multiplexLogService.
This commit is contained in:
parent
eaf63deb56
commit
350ddc3c27
@ -29,7 +29,7 @@ import { ServiceCollection } from 'vs/platform/instantiation/common/serviceColle
|
|||||||
import { ILocalizationsService } from 'vs/platform/localizations/common/localizations';
|
import { ILocalizationsService } from 'vs/platform/localizations/common/localizations';
|
||||||
import { LocalizationsService } from 'vs/platform/localizations/node/localizations';
|
import { LocalizationsService } from 'vs/platform/localizations/node/localizations';
|
||||||
import { ConsoleLogger, getLogLevel, ILoggerService, ILogService, MultiplexLogService } from 'vs/platform/log/common/log';
|
import { ConsoleLogger, getLogLevel, ILoggerService, ILogService, MultiplexLogService } from 'vs/platform/log/common/log';
|
||||||
import { FollowerLogService, LoggerChannel, LoggerChannelClient } from 'vs/platform/log/common/logIpc';
|
import { LoggerChannel } from 'vs/platform/log/common/logIpc';
|
||||||
import { LoggerService } from 'vs/platform/log/node/loggerService';
|
import { LoggerService } from 'vs/platform/log/node/loggerService';
|
||||||
import { SpdLogLogger } from 'vs/platform/log/node/spdlogLog';
|
import { SpdLogLogger } from 'vs/platform/log/node/spdlogLog';
|
||||||
import product from 'vs/platform/product/common/product';
|
import product from 'vs/platform/product/common/product';
|
||||||
@ -217,25 +217,30 @@ export class Vscode {
|
|||||||
https://github.com/cdr/code-server/blob/main/lib/vscode/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts#L148
|
https://github.com/cdr/code-server/blob/main/lib/vscode/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts#L148
|
||||||
|
|
||||||
If upstream changes cause conflicts, look there ^.
|
If upstream changes cause conflicts, look there ^.
|
||||||
|
3/11/21 @jsjoeio
|
||||||
*/
|
*/
|
||||||
const environmentService = new NativeEnvironmentService(args);
|
const environmentService = new NativeEnvironmentService(args);
|
||||||
// https://github.com/cdr/code-server/issues/1693
|
// https://github.com/cdr/code-server/issues/1693
|
||||||
fs.mkdirSync(environmentService.globalStorageHome.fsPath, { recursive: true });
|
fs.mkdirSync(environmentService.globalStorageHome.fsPath, { recursive: true });
|
||||||
/*
|
/*
|
||||||
NOTE@coder: Made these updates on 3/11/21 by @jsjoeio
|
NOTE@coder: Made these updates on based on this file (and lines):
|
||||||
based on this file (and lines):
|
|
||||||
https://github.com/cdr/code-server/blob/main/lib/vscode/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts#L144-L149
|
https://github.com/cdr/code-server/blob/main/lib/vscode/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts#L144-L149
|
||||||
|
|
||||||
|
More details (from @code-asher):
|
||||||
|
I think the logLevel channel is only used in the electron version of vscode so we can probably skip it.
|
||||||
|
With that in mind we wouldn't need logLevelClient which means we wouldn't need the follower service
|
||||||
|
either and we can use the multiplex log service directly.
|
||||||
|
3/11/21 @jsjoeio
|
||||||
*/
|
*/
|
||||||
const mainRouter = new StaticRouter(ctx => ctx === 'main')
|
const logService = new MultiplexLogService([
|
||||||
const loggerClient = new LoggerChannelClient(this.ipc.getChannel('logger', mainRouter))
|
|
||||||
const multiplexLogger = new MultiplexLogService([
|
|
||||||
new ConsoleLogger(getLogLevel(environmentService)),
|
new ConsoleLogger(getLogLevel(environmentService)),
|
||||||
new SpdLogLogger(RemoteExtensionLogFileName, environmentService.logsPath, false, getLogLevel(environmentService))
|
new SpdLogLogger(RemoteExtensionLogFileName, environmentService.logsPath, false, getLogLevel(environmentService))
|
||||||
])
|
])
|
||||||
const logService = new FollowerLogService(loggerClient, multiplexLogger)
|
|
||||||
const fileService = new FileService(logService);
|
const fileService = new FileService(logService);
|
||||||
fileService.registerProvider(Schemas.file, new DiskFileSystemProvider(logService));
|
fileService.registerProvider(Schemas.file, new DiskFileSystemProvider(logService));
|
||||||
|
|
||||||
|
const loggerService = new LoggerService(logService, fileService)
|
||||||
|
|
||||||
const piiPaths = [
|
const piiPaths = [
|
||||||
path.join(environmentService.userDataPath, 'clp'), // Language packs.
|
path.join(environmentService.userDataPath, 'clp'), // Language packs.
|
||||||
environmentService.appRoot,
|
environmentService.appRoot,
|
||||||
@ -245,13 +250,17 @@ export class Vscode {
|
|||||||
...environmentService.extraBuiltinExtensionPaths,
|
...environmentService.extraBuiltinExtensionPaths,
|
||||||
];
|
];
|
||||||
|
|
||||||
this.ipc.registerChannel('logger', new LoggerChannel(logService));
|
this.ipc.registerChannel('logger', new LoggerChannel(loggerService));
|
||||||
this.ipc.registerChannel(ExtensionHostDebugBroadcastChannel.ChannelName, new ExtensionHostDebugBroadcastChannel());
|
this.ipc.registerChannel(ExtensionHostDebugBroadcastChannel.ChannelName, new ExtensionHostDebugBroadcastChannel());
|
||||||
|
|
||||||
this.services.set(ILogService, logService);
|
this.services.set(ILogService, logService);
|
||||||
this.services.set(IEnvironmentService, environmentService);
|
this.services.set(IEnvironmentService, environmentService);
|
||||||
this.services.set(INativeEnvironmentService, environmentService);
|
this.services.set(INativeEnvironmentService, environmentService);
|
||||||
this.services.set(ILoggerService, new SyncDescriptor(LoggerService));
|
/*
|
||||||
|
NOTE@coder: we changed this from LoggerService to the loggerService defined above.
|
||||||
|
3/11/21 @jsjoeio
|
||||||
|
*/
|
||||||
|
this.services.set(ILoggerService, loggerService);
|
||||||
|
|
||||||
const configurationService = new ConfigurationService(environmentService.settingsResource, fileService);
|
const configurationService = new ConfigurationService(environmentService.settingsResource, fileService);
|
||||||
await configurationService.initialize();
|
await configurationService.initialize();
|
||||||
|
Reference in New Issue
Block a user