提交 57fc7c21 编写于 作者: B Benjamin Pasero

web - add support for setting log level (#108267)

上级 7a070565
...@@ -17,6 +17,7 @@ import { isStandalone } from 'vs/base/browser/browser'; ...@@ -17,6 +17,7 @@ import { isStandalone } from 'vs/base/browser/browser';
import { localize } from 'vs/nls'; import { localize } from 'vs/nls';
import { Schemas } from 'vs/base/common/network'; import { Schemas } from 'vs/base/common/network';
import product from 'vs/platform/product/common/product'; import product from 'vs/platform/product/common/product';
import { getLogLevel, LogLevel } from 'vs/platform/log/common/log';
function doCreateUri(path: string, queryValues: Map<string, string>): URI { function doCreateUri(path: string, queryValues: Map<string, string>): URI {
let query: string | undefined = undefined; let query: string | undefined = undefined;
...@@ -416,7 +417,8 @@ class WindowIndicator implements IWindowIndicator { ...@@ -416,7 +417,8 @@ class WindowIndicator implements IWindowIndicator {
// Find workspace to open and payload // Find workspace to open and payload
let foundWorkspace = false; let foundWorkspace = false;
let workspace: IWorkspace; let workspace: IWorkspace;
let payload = Object.create(null); let payloadRaw = Object.create(null);
let payloadMap = new Map<string, string>();
const query = new URL(document.location.href).searchParams; const query = new URL(document.location.href).searchParams;
query.forEach((value, key) => { query.forEach((value, key) => {
...@@ -443,7 +445,10 @@ class WindowIndicator implements IWindowIndicator { ...@@ -443,7 +445,10 @@ class WindowIndicator implements IWindowIndicator {
// Payload // Payload
case WorkspaceProvider.QUERY_PARAM_PAYLOAD: case WorkspaceProvider.QUERY_PARAM_PAYLOAD:
try { try {
payload = JSON.parse(value); payloadRaw = JSON.parse(value);
if (Array.isArray(payloadRaw)) {
payloadMap = new Map(payloadRaw);
}
} catch (error) { } catch (error) {
console.error(error); // possible invalid JSON console.error(error); // possible invalid JSON
} }
...@@ -463,7 +468,7 @@ class WindowIndicator implements IWindowIndicator { ...@@ -463,7 +468,7 @@ class WindowIndicator implements IWindowIndicator {
} }
// Workspace Provider // Workspace Provider
const workspaceProvider = new WorkspaceProvider(workspace, payload); const workspaceProvider = new WorkspaceProvider(workspace, payloadRaw);
// Home Indicator // Home Indicator
const homeIndicator: IHomeIndicator = { const homeIndicator: IHomeIndicator = {
...@@ -511,6 +516,13 @@ class WindowIndicator implements IWindowIndicator { ...@@ -511,6 +516,13 @@ class WindowIndicator implements IWindowIndicator {
} }
} : undefined; } : undefined;
// log level
let logLevel: LogLevel | undefined = undefined;
const logLevelPayload = payloadMap.get('logLevel');
if (logLevelPayload) {
logLevel = getLogLevel(logLevelPayload);
}
// Finally create workbench // Finally create workbench
create(document.body, { create(document.body, {
...config, ...config,
...@@ -520,6 +532,7 @@ class WindowIndicator implements IWindowIndicator { ...@@ -520,6 +532,7 @@ class WindowIndicator implements IWindowIndicator {
productQualityChangeHandler, productQualityChangeHandler,
workspaceProvider, workspaceProvider,
urlCallbackProvider: new PollingURLCallbackProvider(), urlCallbackProvider: new PollingURLCallbackProvider(),
credentialsProvider: new LocalStorageCredentialsProvider() credentialsProvider: new LocalStorageCredentialsProvider(),
logLevel
}); });
})(); })();
...@@ -414,12 +414,23 @@ export class NullLogService implements ILogService { ...@@ -414,12 +414,23 @@ export class NullLogService implements ILogService {
flush(): void { } flush(): void { }
} }
export function getLogLevel(environmentService: IEnvironmentService): LogLevel { export function getLogLevel(environmentService: IEnvironmentService): LogLevel;
if (environmentService.verbose) { export function getLogLevel(logLevel: string): LogLevel;
return LogLevel.Trace; export function getLogLevel(arg: IEnvironmentService | string): LogLevel {
let rawLogLevel: string | undefined = undefined;
if (typeof arg !== 'string') {
if (arg.verbose) {
return LogLevel.Trace;
}
rawLogLevel = arg.logLevel;
} else {
rawLogLevel = arg;
} }
if (typeof environmentService.logLevel === 'string') {
const logLevel = environmentService.logLevel.toLowerCase(); if (typeof rawLogLevel === 'string') {
const logLevel = rawLogLevel.toLowerCase();
switch (logLevel) { switch (logLevel) {
case 'trace': case 'trace':
return LogLevel.Trace; return LogLevel.Trace;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册