Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

api feedback #164470

Merged
merged 7 commits into from
Nov 1, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion extensions/vscode-api-tests/src/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ export function delay(ms: number) {
export function withLogDisabled(runnable: () => Promise<any>): () => Promise<void> {
return async (): Promise<void> => {
const logLevel = await vscode.commands.executeCommand('_extensionTests.getLogLevel');
await vscode.commands.executeCommand('_extensionTests.setLogLevel', 6 /* critical */);
await vscode.commands.executeCommand('_extensionTests.setLogLevel', 'off');

try {
await runnable();
Expand Down
1 change: 0 additions & 1 deletion src/vs/platform/log/browser/log.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ function logLevelToString(level: LogLevel): string {
case LogLevel.Info: return 'info';
case LogLevel.Warning: return 'warn';
case LogLevel.Error: return 'error';
case LogLevel.Critical: return 'error';
}
return 'info';
}
Expand Down
5 changes: 0 additions & 5 deletions src/vs/platform/log/common/bufferLog.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ function getLogFunction(logger: ILogger, level: LogLevel): Function {
case LogLevel.Info: return logger.info;
case LogLevel.Warning: return logger.warn;
case LogLevel.Error: return logger.error;
case LogLevel.Critical: return logger.critical;
default: throw new Error('Invalid log level');
}
}
Expand Down Expand Up @@ -76,10 +75,6 @@ export class BufferLogService extends AbstractLogger implements ILogService {
this._log(LogLevel.Error, message, ...args);
}

critical(message: string | Error, ...args: any[]): void {
this._log(LogLevel.Critical, message, ...args);
}

override dispose(): void {
this._logger?.dispose();
}
Expand Down
7 changes: 0 additions & 7 deletions src/vs/platform/log/common/fileLog.ts
Original file line number Diff line number Diff line change
Expand Up @@ -70,12 +70,6 @@ export class FileLogger extends AbstractLogger implements ILogger {
}
}

critical(): void {
if (this.getLevel() <= LogLevel.Critical) {
this._log(LogLevel.Critical, format(arguments));
}
}

flush(): void {
}

Expand Down Expand Up @@ -129,7 +123,6 @@ export class FileLogger extends AbstractLogger implements ILogger {

private stringifyLogLevel(level: LogLevel): string {
switch (level) {
case LogLevel.Critical: return 'critical';
case LogLevel.Debug: return 'debug';
case LogLevel.Error: return 'error';
case LogLevel.Info: return 'info';
Expand Down
70 changes: 14 additions & 56 deletions src/vs/platform/log/common/log.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,12 @@ function now(): string {
}

export enum LogLevel {
Off,
Trace,
Debug,
Info,
Warning,
Error,
Critical,
Off
Error
}

export const DEFAULT_LOG_LEVEL: LogLevel = LogLevel.Info;
Expand All @@ -41,7 +40,6 @@ export interface ILogger extends IDisposable {
info(message: string, ...args: any[]): void;
warn(message: string, ...args: any[]): void;
error(message: string | Error, ...args: any[]): void;
critical(message: string | Error, ...args: any[]): void;

/**
* An operation to flush the contents. Can be synchronous.
Expand All @@ -56,7 +54,6 @@ export function log(logger: ILogger, level: LogLevel, message: string): void {
case LogLevel.Info: logger.info(message); break;
case LogLevel.Warning: logger.warn(message); break;
case LogLevel.Error: logger.error(message); break;
case LogLevel.Critical: logger.critical(message); break;
default: throw new Error('Invalid log level');
}
}
Expand Down Expand Up @@ -198,12 +195,6 @@ export abstract class AbstractMessageLogger extends AbstractLogger implements IL
}
}

critical(message: string | Error, ...args: any[]): void {
if (this.checkLogLevel(LogLevel.Critical)) {
this.log(LogLevel.Critical, format([message, ...args]));
}
}

flush(): void { }
}

Expand Down Expand Up @@ -268,16 +259,6 @@ export class ConsoleMainLogger extends AbstractLogger implements ILogger {
}
}

critical(message: string, ...args: any[]): void {
if (this.getLevel() <= LogLevel.Critical) {
if (this.useColors) {
console.error(`\x1b[90m[main ${now()}]\x1b[0m`, message, ...args);
} else {
console.error(`[main ${now()}]`, message, ...args);
}
}
}

override dispose(): void {
// noop
}
Expand Down Expand Up @@ -325,12 +306,6 @@ export class ConsoleLogger extends AbstractLogger implements ILogger {
}
}

critical(message: string, ...args: any[]): void {
if (this.getLevel() <= LogLevel.Critical) {
console.log('%cCRITI', 'background: #f33; color: white', message, ...args);
}
}

override dispose(): void {
// noop
}
Expand Down Expand Up @@ -377,12 +352,6 @@ export class AdapterLogger extends AbstractLogger implements ILogger {
}
}

critical(message: string | Error, ...args: any[]): void {
if (this.getLevel() <= LogLevel.Critical) {
this.adapter.log(LogLevel.Critical, [this.extractMessage(message), ...args]);
}
}

private extractMessage(msg: string | Error): string {
if (typeof msg === 'string') {
return msg;
Expand Down Expand Up @@ -447,12 +416,6 @@ export class MultiplexLogService extends AbstractLogger implements ILogService {
}
}

critical(message: string | Error, ...args: any[]): void {
for (const logService of this.logServices) {
logService.critical(message, ...args);
}
}

flush(): void {
for (const logService of this.logServices) {
logService.flush();
Expand Down Expand Up @@ -506,10 +469,6 @@ export class LogService extends Disposable implements ILogService {
this.logger.error(message, ...args);
}

critical(message: string | Error, ...args: any[]): void {
this.logger.critical(message, ...args);
}

flush(): void {
this.logger.flush();
}
Expand Down Expand Up @@ -629,6 +588,17 @@ export function getLogLevel(environmentService: IEnvironmentService): LogLevel {
return DEFAULT_LOG_LEVEL;
}

export function LogLevelToString(logLevel: LogLevel): string {
switch (logLevel) {
case LogLevel.Trace: return 'trace';
case LogLevel.Debug: return 'debug';
case LogLevel.Info: return 'info';
case LogLevel.Warning: return 'warn';
case LogLevel.Error: return 'error';
case LogLevel.Off: return 'off';
}
}

export function parseLogLevel(logLevel: string): LogLevel | undefined {
switch (logLevel) {
case 'trace':
Expand All @@ -642,21 +612,9 @@ export function parseLogLevel(logLevel: string): LogLevel | undefined {
case 'error':
return LogLevel.Error;
case 'critical':
return LogLevel.Critical;
return LogLevel.Error;
case 'off':
return LogLevel.Off;
}
return undefined;
}

export function LogLevelToString(logLevel: LogLevel): string {
switch (logLevel) {
case LogLevel.Trace: return 'trace';
case LogLevel.Debug: return 'debug';
case LogLevel.Info: return 'info';
case LogLevel.Warning: return 'warn';
case LogLevel.Error: return 'error';
case LogLevel.Critical: return 'critical';
case LogLevel.Off: return 'off';
}
}
29 changes: 26 additions & 3 deletions src/vs/platform/log/node/spdlogLog.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,16 @@ import * as spdlog from 'spdlog';
import { ByteSize } from 'vs/platform/files/common/files';
import { AbstractMessageLogger, ILogger, LogLevel } from 'vs/platform/log/common/log';

enum SpdLogLevel {
Trace,
Debug,
Info,
Warning,
Error,
Critical,
Off
}

async function createSpdLogLogger(name: string, logfilePath: string, filesize: number, filecount: number, donotUseFormatters: boolean): Promise<spdlog.Logger | null> {
// Do not crash if spdlog cannot be loaded
try {
Expand Down Expand Up @@ -37,7 +47,18 @@ function log(logger: spdlog.Logger, level: LogLevel, message: string): void {
case LogLevel.Info: logger.info(message); break;
case LogLevel.Warning: logger.warn(message); break;
case LogLevel.Error: logger.error(message); break;
case LogLevel.Critical: logger.critical(message); break;
default: throw new Error('Invalid log level');
}
}

function setLogLevel(logger: spdlog.Logger, level: LogLevel): void {
switch (level) {
case LogLevel.Trace: logger.setLevel(SpdLogLevel.Trace); break;
case LogLevel.Debug: logger.setLevel(SpdLogLevel.Debug); break;
case LogLevel.Info: logger.setLevel(SpdLogLevel.Info); break;
case LogLevel.Warning: logger.setLevel(SpdLogLevel.Warning); break;
case LogLevel.Error: logger.setLevel(SpdLogLevel.Error); break;
case LogLevel.Off: logger.setLevel(SpdLogLevel.Off); break;
default: throw new Error('Invalid log level');
}
}
Expand All @@ -59,7 +80,9 @@ export class SpdLogLogger extends AbstractMessageLogger implements ILogger {
this.setLevel(level);
this._loggerCreationPromise = this._createSpdLogLogger(name, filepath, rotating, donotUseFormatters);
this._register(this.onDidChangeLogLevel(level => {
this._logger?.setLevel(level);
if (this._logger) {
setLogLevel(this._logger, level);
}
}));
}

Expand All @@ -69,7 +92,7 @@ export class SpdLogLogger extends AbstractMessageLogger implements ILogger {
const logger = await createSpdLogLogger(name, filepath, filesize, filecount, donotUseFormatters);
if (logger) {
this._logger = logger;
this._logger.setLevel(this.getLevel());
setLogLevel(this._logger, this.getLevel());
for (const { level, message } of this.buffer) {
log(this._logger, level, message);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,12 +48,6 @@ class TestTelemetryLogger extends AbstractLogger implements ILogger {
}
}

critical(message: string, ...args: any[]): void {
if (this.getLevel() <= LogLevel.Critical) {
this.logs.push(message);
}
}

override dispose(): void { }
flush(): void { }
}
Expand Down
4 changes: 0 additions & 4 deletions src/vs/platform/userDataSync/common/userDataSyncLog.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,6 @@ export class UserDataSyncLogService extends AbstractLogger implements IUserDataS
this.logger.error(message, ...args);
}

critical(message: string | Error, ...args: any[]): void {
this.logger.critical(message, ...args);
}

flush(): void {
this.logger.flush();
}
Expand Down
10 changes: 0 additions & 10 deletions src/vs/server/node/serverServices.ts
Original file line number Diff line number Diff line change
Expand Up @@ -315,16 +315,6 @@ class ServerLogService extends AbstractLogger implements ILogService {
}
}

critical(message: string, ...args: any[]): void {
if (this.getLevel() <= LogLevel.Critical) {
if (this.useColors) {
console.error(`\x1b[90m[${now()}]\x1b[0m`, message, ...args);
} else {
console.error(`[${now()}]`, message, ...args);
}
}
}

override dispose(): void {
// noop
}
Expand Down
11 changes: 7 additions & 4 deletions src/vs/workbench/api/browser/mainThreadLogService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
*--------------------------------------------------------------------------------------------*/

import { extHostNamedCustomer, IExtHostContext } from 'vs/workbench/services/extensions/common/extHostCustomers';
import { ILoggerOptions, ILoggerService, ILogService, log, LogLevel } from 'vs/platform/log/common/log';
import { ILoggerOptions, ILoggerService, ILogService, log, LogLevel, LogLevelToString, parseLogLevel } from 'vs/platform/log/common/log';
import { DisposableStore } from 'vs/base/common/lifecycle';
import { ExtHostContext, MainThreadLoggerShape, MainContext } from 'vs/workbench/api/common/extHost.protocol';
import { UriComponents, URI } from 'vs/base/common/uri';
Expand Down Expand Up @@ -59,17 +59,20 @@ export class MainThreadLoggerService implements MainThreadLoggerShape {

// --- Internal commands to improve extension test runs

CommandsRegistry.registerCommand('_extensionTests.setLogLevel', function (accessor: ServicesAccessor, level: number) {
CommandsRegistry.registerCommand('_extensionTests.setLogLevel', function (accessor: ServicesAccessor, level: string) {
const logService = accessor.get(ILogService);
const environmentService = accessor.get(IEnvironmentService);

if (environmentService.isExtensionDevelopment && !!environmentService.extensionTestsLocationURI) {
logService.setLevel(level);
const logLevel = parseLogLevel(level);
if (logLevel !== undefined) {
logService.setLevel(logLevel);
}
}
});

CommandsRegistry.registerCommand('_extensionTests.getLogLevel', function (accessor: ServicesAccessor) {
const logService = accessor.get(ILogService);

return logService.getLevel();
return LogLevelToString(logService.getLevel());
});
2 changes: 1 addition & 1 deletion src/vs/workbench/api/node/proxyResolver.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ export function connectProxyResolver(
case LogLevel.Info: extHostLogService.info(message, ...args); break;
case LogLevel.Warning: extHostLogService.warn(message, ...args); break;
case LogLevel.Error: extHostLogService.error(message, ...args); break;
case LogLevel.Critical: extHostLogService.critical(message, ...args); break;
case LogLevel.Critical: extHostLogService.error(message, ...args); break;
case LogLevel.Off: break;
default: never(level, message, args); break;
}
Expand Down
2 changes: 1 addition & 1 deletion src/vs/workbench/contrib/bulkEdit/browser/bulkFileEdits.ts
Original file line number Diff line number Diff line change
Expand Up @@ -256,7 +256,7 @@ class DeleteOperation implements IFileOperation {
try {
fileContent = await this._fileService.readFile(edit.oldUri);
} catch (err) {
this._logService.critical(err);
this._logService.error(err);
}
}
if (fileContent !== undefined) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,6 @@ export class EditSessionsLogService extends AbstractLogger implements IEditSessi
this.logger.error(message, ...args);
}

critical(message: string | Error, ...args: any[]): void {
this.logger.critical(message, ...args);
}

flush(): void {
this.logger.flush();
}
Expand Down
1 change: 0 additions & 1 deletion src/vs/workbench/contrib/logs/common/logsActions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,6 @@ export class SetLogLevelAction extends Action {
{ label: this.getLabel(nls.localize('info', "Info"), LogLevel.Info, current), level: LogLevel.Info, description: this.getDescription(LogLevel.Info, defaultLogLevel) },
{ label: this.getLabel(nls.localize('warn', "Warning"), LogLevel.Warning, current), level: LogLevel.Warning, description: this.getDescription(LogLevel.Warning, defaultLogLevel) },
{ label: this.getLabel(nls.localize('err', "Error"), LogLevel.Error, current), level: LogLevel.Error, description: this.getDescription(LogLevel.Error, defaultLogLevel) },
{ label: this.getLabel(nls.localize('critical', "Critical"), LogLevel.Critical, current), level: LogLevel.Critical, description: this.getDescription(LogLevel.Critical, defaultLogLevel) },
{ label: this.getLabel(nls.localize('off', "Off"), LogLevel.Off, current), level: LogLevel.Off, description: this.getDescription(LogLevel.Off, defaultLogLevel) },
];

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ class NotebookModelReferenceCollection extends ReferenceCollection<Promise<IReso
this._modelListener.delete(model);
model.dispose();
}).catch(err => {
this._logService.critical('FAILED to destory notebook', err);
this._logService.error('FAILED to destory notebook', err);
});
}
}
Expand Down
Loading