src/vs/workbench/api/browser/mainThreadLogService.ts/MainThreadLoggerService/constructor
class MainThreadLoggerService:	constructor(
		extHostContext: IExtHostContext,
		@ILogService logService: ILogService,
		@ILoggerService private readonly loggerService: ILoggerService,
		@ILogLevelService extensionLoggerService: ILogLevelService,
		@IOutputService outputService: IOutputService,
	) {
		const proxy = extHostContext.getProxy(ExtHostContext.ExtHostLogLevelServiceShape);
		this.disposables.add(logService.onDidChangeLogLevel(level => proxy.$setLevel(level)));
		this.disposables.add(extensionLoggerService.onDidChangeLogLevel(({ id, logLevel }) => {
			const channel = outputService.getChannelDescriptor(id);
			const resource = channel?.log ? channel.file : undefined;
			if (resource && (channel?.extensionId || id === localExtHostLog || id === remoteExtHostLog || id === webWorkerExtHostLog)) {
				proxy.$setLevel(logLevel, resource);
			}
		}));
	}