From 4bd12af7f6f4b4a3ce45d5aba48fdb60bb5ea68b Mon Sep 17 00:00:00 2001 From: Ladislau Szomoru <3372902+lszomoru@users.noreply.github.com> Date: Thu, 2 Jun 2022 15:10:18 +0200 Subject: Git log level polish (#151095) --- extensions/git/src/commands.ts | 2 +- extensions/git/src/log.ts | 49 +++++++++++++++++++++--------------------- extensions/git/src/main.ts | 2 +- 3 files changed, 27 insertions(+), 26 deletions(-) (limited to 'extensions') diff --git a/extensions/git/src/commands.ts b/extensions/git/src/commands.ts index e8cd512b648..32812e42159 100644 --- a/extensions/git/src/commands.ts +++ b/extensions/git/src/commands.ts @@ -368,7 +368,7 @@ export class CommandCenter { return; } - this.outputChannelLogger.setLogLevel(choice.logLevel); + this.outputChannelLogger.currentLogLevel = choice.logLevel; } @command('git.refresh', { repository: true }) diff --git a/extensions/git/src/log.ts b/extensions/git/src/log.ts index 570e90c5d85..c0f96ff0216 100644 --- a/extensions/git/src/log.ts +++ b/extensions/git/src/log.ts @@ -30,12 +30,22 @@ export class OutputChannelLogger { private _onDidChangeLogLevel = new EventEmitter(); readonly onDidChangeLogLevel: Event = this._onDidChangeLogLevel.event; - private _currentLogLevel: LogLevel; + private _currentLogLevel!: LogLevel; get currentLogLevel(): LogLevel { return this._currentLogLevel; } + set currentLogLevel(value: LogLevel) { + if (this._currentLogLevel === value) { + return; + } + + this._currentLogLevel = value; + this._onDidChangeLogLevel.fire(value); + + this.log(localize('gitLogLevel', "Log level: {0}", LogLevel[value])); + } - private _defaultLogLevel: LogLevel; + private _defaultLogLevel!: LogLevel; get defaultLogLevel(): LogLevel { return this._defaultLogLevel; } @@ -49,20 +59,26 @@ export class OutputChannelLogger { commands.registerCommand('git.showOutput', () => this.showOutputChannel()); this._disposables.push(this._outputChannel); - // Initialize log level + this._disposables.push(workspace.onDidChangeConfiguration(e => { + if (e.affectsConfiguration('git.logLevel')) { + this.onLogLevelChange(); + } + })); + this.onLogLevelChange(); + } + + private onLogLevelChange(): void { const config = workspace.getConfiguration('git'); const logLevel: keyof typeof LogLevel = config.get('logLevel', 'Info'); - this._currentLogLevel = this._defaultLogLevel = LogLevel[logLevel] ?? LogLevel.Info; - - this.logInfo(localize('gitLogLevel', "Log level: {0}", LogLevel[this._currentLogLevel])); + this.currentLogLevel = this._defaultLogLevel = LogLevel[logLevel] ?? LogLevel.Info; } - private log(message: string, logLevel: LogLevel): void { - if (logLevel < this._currentLogLevel) { + log(message: string, logLevel?: LogLevel): void { + if (logLevel && logLevel < this._currentLogLevel) { return; } - this._outputChannel.appendLine(`[${new Date().toISOString()}] [${LogLevel[logLevel].toLowerCase()}] ${message}`); + this._outputChannel.appendLine(`[${new Date().toISOString()}]${logLevel ? ` [${LogLevel[logLevel].toLowerCase()}]` : ''} ${message}`); } logCritical(message: string): void { @@ -89,21 +105,6 @@ export class OutputChannelLogger { this.log(message, LogLevel.Warning); } - logGitCommand(command: string): void { - this._outputChannel.appendLine(`[${new Date().toISOString()}] ${command}`); - } - - setLogLevel(logLevel: LogLevel): void { - if (this._currentLogLevel === logLevel) { - return; - } - - this._currentLogLevel = logLevel; - this._onDidChangeLogLevel.fire(logLevel); - - this.logInfo(localize('changed', "Log level changed to: {0}", LogLevel[logLevel])); - } - showOutputChannel(): void { this._outputChannel.show(); } diff --git a/extensions/git/src/main.ts b/extensions/git/src/main.ts index ee60d2cb1b1..a5e7c060f00 100644 --- a/extensions/git/src/main.ts +++ b/extensions/git/src/main.ts @@ -90,7 +90,7 @@ async function createModel(context: ExtensionContext, outputChannelLogger: Outpu lines.pop(); } - outputChannelLogger.logGitCommand(lines.join('\n')); + outputChannelLogger.log(lines.join('\n')); }; git.onOutput.addListener('log', onOutput); disposables.push(toDisposable(() => git.onOutput.removeListener('log', onOutput))); -- cgit v1.2.3