Adds gitlens.diffWithPrevious command to the explore context menu

Adds output channel logging, controlled by the `gitlens.advanced.output.level` setting
Removes all debug logging, unless the `gitlens.advanced.output.debug` settings it on
This commit is contained in:
Eric Amodio
2016-11-08 03:38:33 -05:00
parent 409be335f9
commit 562afeaaad
17 changed files with 330 additions and 191 deletions

57
src/logger.ts Normal file
View File

@@ -0,0 +1,57 @@
'use strict';
import { Objects } from './system';
import { OutputChannel, window, workspace } from 'vscode';
import { IAdvancedConfig, OutputLevel } from './configuration';
let config: IAdvancedConfig;
let output: OutputChannel;
workspace.onDidChangeConfiguration(onConfigurationChange);
onConfigurationChange();
function onConfigurationChange() {
const cfg = workspace.getConfiguration('gitlens').get<IAdvancedConfig>('advanced');
if (!Objects.areEquivalent(cfg.output, config && config.output)) {
if (cfg.output.level === OutputLevel.Silent) {
output && output.dispose();
}
else if (!output) {
output = window.createOutputChannel('GitLens');
}
}
config = cfg;
}
export class Logger {
static log(message?: any, ...params: any[]): void {
if (config.output.debug) {
console.log('[GitLens]', message, ...params);
}
if (config.output.level === OutputLevel.Verbose) {
output.appendLine([message, ...params].join(' '));
}
}
static error(message?: any, ...params: any[]): void {
if (config.output.debug) {
console.error('[GitLens]', message, ...params);
}
if (config.output.level !== OutputLevel.Silent) {
output.appendLine([message, ...params].join(' '));
}
}
static warn(message?: any, ...params: any[]): void {
if (config.output.debug) {
console.warn('[GitLens]', message, ...params);
}
if (config.output.level !== OutputLevel.Silent) {
output.appendLine([message, ...params].join(' '));
}
}
}