Skip to content

Commit

Permalink
Revert "Revert "remove proposed Logger-api, #43275""
Browse files Browse the repository at this point in the history
This reverts commit 315cce8.
  • Loading branch information
jrieken committed Aug 20, 2018
1 parent 4bf5813 commit 6620589
Show file tree
Hide file tree
Showing 5 changed files with 4 additions and 73 deletions.
16 changes: 0 additions & 16 deletions src/vs/vscode.proposed.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -434,23 +434,7 @@ declare module 'vscode' {
Off = 7
}

/**
* A logger for writing to an extension's log file, and accessing its dedicated log directory.
*/
export interface Logger {
trace(message: string, ...args: any[]): void;
debug(message: string, ...args: any[]): void;
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;
}

export interface ExtensionContext {
/**
* This extension's logger
*/
logger: Logger;

/**
* Path where an extension can write log files.
Expand Down
5 changes: 4 additions & 1 deletion src/vs/workbench/api/node/extHost.api.impl.ts
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,10 @@ export function createApiFactory(
get language() { return platform.language; },
get appName() { return product.nameLong; },
get appRoot() { return initData.environment.appRoot; },
get logLevel() { return extHostLogService.getLevel(); }
get logLevel() {
checkProposedApiEnabled(extension);
return extHostLogService.getLevel();
}
});

// namespace: extensions
Expand Down
2 changes: 0 additions & 2 deletions src/vs/workbench/api/node/extHostExtensionActivator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ import Severity from 'vs/base/common/severity';
import { TPromise } from 'vs/base/common/winjs.base';
import { ExtensionDescriptionRegistry } from 'vs/workbench/services/extensions/node/extensionDescriptionRegistry';
import { IExtensionDescription } from 'vs/workbench/services/extensions/common/extensions';
import { ExtHostLogger } from 'vs/workbench/api/node/extHostLogService';

const hasOwnProperty = Object.hasOwnProperty;
const NO_OP_VOID_PROMISE = TPromise.wrap<void>(void 0);
Expand All @@ -27,7 +26,6 @@ export interface IExtensionContext {
extensionPath: string;
storagePath: string;
asAbsolutePath(relativePath: string): string;
logger: ExtHostLogger;
readonly logDirectory: string;
readonly logPath: string;
}
Expand Down
4 changes: 0 additions & 4 deletions src/vs/workbench/api/node/extHostExtensionService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -361,10 +361,6 @@ export class ExtHostExtensionService implements ExtHostExtensionServiceShape {
get extensionPath() { return extensionDescription.extensionLocation.fsPath; },
storagePath: this._storagePath.value(extensionDescription),
asAbsolutePath: (relativePath: string) => { return join(extensionDescription.extensionLocation.fsPath, relativePath); },
get logger() {
checkProposedApiEnabled(extensionDescription);
return that._extHostLogService.getExtLogger(extensionDescription.id);
},
get logDirectory() {
console.warn(`this PROPOSED API has been RENAMED to 'logPath'`);
checkProposedApiEnabled(extensionDescription);
Expand Down
50 changes: 0 additions & 50 deletions src/vs/workbench/api/node/extHostLogService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
*--------------------------------------------------------------------------------------------*/
'use strict';

import * as vscode from 'vscode';
import { join } from 'vs/base/common/paths';
import { LogLevel } from 'vs/workbench/api/node/extHostTypes';
import { ILogService, DelegatedLogService } from 'vs/platform/log/common/log';
Expand All @@ -14,8 +13,6 @@ import { ExtHostLogServiceShape } from 'vs/workbench/api/node/extHost.protocol';

export class ExtHostLogService extends DelegatedLogService implements ILogService, ExtHostLogServiceShape {

private _loggers: Map<string, ExtHostLogger> = new Map();

constructor(
private _windowId: number,
logLevel: LogLevel,
Expand All @@ -28,54 +25,7 @@ export class ExtHostLogService extends DelegatedLogService implements ILogServic
this.setLevel(level);
}

getExtLogger(extensionID: string): ExtHostLogger {
let logger = this._loggers.get(extensionID);
if (!logger) {
logger = this.createLogger(extensionID);
this._loggers.set(extensionID, logger);
}
return logger;
}

getLogDirectory(extensionID: string): string {
return join(this._logsPath, `${extensionID}_${this._windowId}`);
}

private createLogger(extensionID: string): ExtHostLogger {
const logsDirPath = this.getLogDirectory(extensionID);
const logService = createSpdLogService(extensionID, this.getLevel(), logsDirPath);
this._register(this.onDidChangeLogLevel(level => logService.setLevel(level)));
return new ExtHostLogger(logService);
}
}

export class ExtHostLogger implements vscode.Logger {

constructor(
private readonly _logService: ILogService
) { }

trace(message: string, ...args: any[]): void {
return this._logService.trace(message, ...args);
}

debug(message: string, ...args: any[]): void {
return this._logService.debug(message, ...args);
}

info(message: string, ...args: any[]): void {
return this._logService.info(message, ...args);
}

warn(message: string, ...args: any[]): void {
return this._logService.warn(message, ...args);
}

error(message: string | Error, ...args: any[]): void {
return this._logService.error(message, ...args);
}

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

0 comments on commit 6620589

Please sign in to comment.