未验证 提交 350ddc3c 编写于 作者: J Joe Previte

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.
上级 eaf63deb
......@@ -29,7 +29,7 @@ import { ServiceCollection } from 'vs/platform/instantiation/common/serviceColle
import { ILocalizationsService } from 'vs/platform/localizations/common/localizations';
import { LocalizationsService } from 'vs/platform/localizations/node/localizations';
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 { SpdLogLogger } from 'vs/platform/log/node/spdlogLog';
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
If upstream changes cause conflicts, look there ^.
3/11/21 @jsjoeio
*/
const environmentService = new NativeEnvironmentService(args);
// https://github.com/cdr/code-server/issues/1693
fs.mkdirSync(environmentService.globalStorageHome.fsPath, { recursive: true });
/*
NOTE@coder: Made these updates on 3/11/21 by @jsjoeio
based on this file (and lines):
NOTE@coder: Made these updates on 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
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 loggerClient = new LoggerChannelClient(this.ipc.getChannel('logger', mainRouter))
const multiplexLogger = new MultiplexLogService([
const logService = new MultiplexLogService([
new ConsoleLogger(getLogLevel(environmentService)),
new SpdLogLogger(RemoteExtensionLogFileName, environmentService.logsPath, false, getLogLevel(environmentService))
])
const logService = new FollowerLogService(loggerClient, multiplexLogger)
const fileService = new FileService(logService);
fileService.registerProvider(Schemas.file, new DiskFileSystemProvider(logService));
const loggerService = new LoggerService(logService, fileService)
const piiPaths = [
path.join(environmentService.userDataPath, 'clp'), // Language packs.
environmentService.appRoot,
......@@ -245,13 +250,17 @@ export class Vscode {
...environmentService.extraBuiltinExtensionPaths,
];
this.ipc.registerChannel('logger', new LoggerChannel(logService));
this.ipc.registerChannel('logger', new LoggerChannel(loggerService));
this.ipc.registerChannel(ExtensionHostDebugBroadcastChannel.ChannelName, new ExtensionHostDebugBroadcastChannel());
this.services.set(ILogService, logService);
this.services.set(IEnvironmentService, 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);
await configurationService.initialize();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册