Skip to content

Commit 265a18b

Browse files
authored
Require component name in error logs (#6598)
Part of #6513
1 parent d5de56b commit 265a18b

14 files changed

Lines changed: 43 additions & 36 deletions

src/commands.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,7 @@ export function registerCommands(
149149
telemetry: ITelemetry,
150150
tree: PullRequestsTreeDataProvider,
151151
) {
152+
const logId = 'RegisterCommands';
152153
context.subscriptions.push(
153154
vscode.commands.registerCommand(
154155
'pr.openPullRequestOnGitHub',
@@ -290,7 +291,7 @@ export function registerCommands(
290291
await vscode.workspace.fs.delete(tempUri);
291292
} catch (err) {
292293
const moreError = `${err}${err.stderr ? `\n${err.stderr}` : ''}`;
293-
Logger.error(`Applying patch failed: ${moreError}`);
294+
Logger.error(`Applying patch failed: ${moreError}`, logId);
294295
vscode.window.showErrorMessage(vscode.l10n.t('Applying patch failed: {0}', formatError(err)));
295296
}
296297
}),
@@ -511,7 +512,7 @@ export function registerCommands(
511512
vscode.commands.registerCommand('pr.pick', async (pr: PRNode | DescriptionNode | PullRequestModel) => {
512513
if (pr === undefined) {
513514
// This is unexpected, but has happened a few times.
514-
Logger.error('Unexpectedly received undefined when picking a PR.');
515+
Logger.error('Unexpectedly received undefined when picking a PR.', logId);
515516
return vscode.window.showErrorMessage(vscode.l10n.t('No pull request was selected to checkout, please try again.'));
516517
}
517518

@@ -552,7 +553,7 @@ export function registerCommands(
552553
vscode.commands.registerCommand('pr.openChanges', async (pr: PRNode | DescriptionNode | PullRequestModel) => {
553554
if (pr === undefined) {
554555
// This is unexpected, but has happened a few times.
555-
Logger.error('Unexpectedly received undefined when picking a PR.');
556+
Logger.error('Unexpectedly received undefined when picking a PR.', logId);
556557
return vscode.window.showErrorMessage(vscode.l10n.t('No pull request was selected to checkout, please try again.'));
557558
}
558559

@@ -606,7 +607,7 @@ export function registerCommands(
606607
vscode.commands.registerCommand('pr.pickOnVscodeDev', async (pr: PRNode | DescriptionNode | PullRequestModel) => {
607608
if (pr === undefined) {
608609
// This is unexpected, but has happened a few times.
609-
Logger.error('Unexpectedly received undefined when picking a PR.');
610+
Logger.error('Unexpectedly received undefined when picking a PR.', logId);
610611
return vscode.window.showErrorMessage(vscode.l10n.t('No pull request was selected to checkout, please try again.'));
611612
}
612613

@@ -1090,7 +1091,7 @@ export function registerCommands(
10901091
const commentEditor = vscode.window.activeTextEditor?.document.uri.scheme === Schemes.Comment ? vscode.window.activeTextEditor
10911092
: vscode.window.visibleTextEditors.find(visible => (visible.document.uri.scheme === Schemes.Comment) && (visible.document.uri.query === ''));
10921093
if (!commentEditor) {
1093-
Logger.error('No comment editor visible for making a suggestion.');
1094+
Logger.error('No comment editor visible for making a suggestion.', logId);
10941095
vscode.window.showErrorMessage(vscode.l10n.t('No available comment editor to make a suggestion in.'));
10951096
return;
10961097
}

src/common/logger.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ class Log extends Disposable {
5757
this._outputChannel.warn(this.logString(message, component));
5858
}
5959

60-
public error(message: any, component?: string) {
60+
public error(message: any, component: string) {
6161
this._outputChannel.error(this.logString(message, component));
6262
}
6363
}

src/common/protocol.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ export enum ProtocolType {
1717
}
1818

1919
export class Protocol {
20+
private static readonly ID = 'Protocol';
2021
public type: ProtocolType = ProtocolType.OTHER;
2122
public host: string = '';
2223

@@ -44,7 +45,7 @@ export class Protocol {
4445
this.owner = this.getOwnerName(this.url.path) || '';
4546
}
4647
} catch (e) {
47-
Logger.error(`Failed to parse '${uriString}'`);
48+
Logger.error(`Failed to parse '${uriString}'`, Protocol.ID);
4849
vscode.window.showWarningMessage(
4950
vscode.l10n.t('Unable to parse remote \'{0}\'. Please check that it is correctly formatted.', uriString)
5051
);

src/common/uri.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,7 @@ export namespace DataUri {
283283
try {
284284
await vscode.workspace.fs.delete(vscode.Uri.joinPath(cacheLocation(context), id));
285285
} catch (e) {
286-
Logger.error(`Failed to delete avatar from cache: ${e}`);
286+
Logger.error(`Failed to delete avatar from cache: ${e}`, 'avatarCirclesAsImageDataUris');
287287
}
288288
}));
289289
}

src/github/createPRViewProvider.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -280,7 +280,7 @@ export abstract class BaseCreatePullRequestViewProvider<T extends BasePullReques
280280
try {
281281
await pr.addAssignees([resolved]);
282282
} catch (e) {
283-
Logger.error(`Unable to assign pull request to user ${resolved}.`);
283+
Logger.error(`Unable to assign pull request to user ${resolved}.`, BaseCreatePullRequestViewProvider.ID);
284284
}
285285
}
286286

@@ -379,7 +379,7 @@ export abstract class BaseCreatePullRequestViewProvider<T extends BasePullReques
379379
});
380380
}
381381
} catch (e) {
382-
Logger.error(formatError(e));
382+
Logger.error(`Failed to add reviewers: ${formatError(e)}`, BaseCreatePullRequestViewProvider.ID);
383383
vscode.window.showErrorMessage(formatError(e));
384384
} finally {
385385
quickPick?.hide();

src/github/credentials.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ interface AuthResult {
4747
}
4848

4949
export class CredentialStore extends Disposable {
50+
private static readonly ID = 'Authentication';
5051
private _githubAPI: GitHub | undefined;
5152
private _sessionId: string | undefined;
5253
private _githubEnterpriseAPI: GitHub | undefined;
@@ -204,7 +205,7 @@ export class CredentialStore extends Disposable {
204205
}
205206
return authResult;
206207
} else {
207-
Logger.debug(`No GitHub${getGitHubSuffix(authProviderId)} token found.`, 'Authentication');
208+
Logger.debug(`No GitHub${getGitHubSuffix(authProviderId)} token found.`, CredentialStore.ID);
208209
return authResult;
209210
}
210211
}
@@ -328,9 +329,9 @@ export class CredentialStore extends Disposable {
328329
try {
329330
await this.initialize(authProviderId, sessionOptions);
330331
} catch (e) {
331-
Logger.error(`${errorPrefix}: ${e}`);
332+
Logger.error(`Login error: ${errorPrefix}: ${e}`, CredentialStore.ID);
332333
if (e instanceof Error && e.stack) {
333-
Logger.error(e.stack);
334+
Logger.error(e.stack, CredentialStore.ID);
334335
}
335336
if (e.message === 'Cancelled') {
336337
isCanceled = true;

src/github/folderRepositoryManager.ts

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,7 @@ export class FolderRepositoryManager extends Disposable {
276276
const serverTypes = await Promise.all(
277277
potentialRemotes.map(remote => this._githubManager.isGitHub(remote.gitProtocol.normalizeUri()!)),
278278
).catch(e => {
279-
Logger.error(`Resolving GitHub remotes failed: ${e}`);
279+
Logger.error(`Resolving GitHub remotes failed: ${e}`, this.id);
280280
vscode.window.showErrorMessage(vscode.l10n.t('Resolving GitHub remotes failed: {0}', formatError(e)));
281281
return [];
282282
});
@@ -297,7 +297,7 @@ export class FolderRepositoryManager extends Disposable {
297297
const serverTypes = await Promise.all(
298298
potentialRemotes.map(remote => this._githubManager.isGitHub(remote.gitProtocol.normalizeUri()!)),
299299
).catch(e => {
300-
Logger.error(`Resolving GitHub remotes failed: ${e}`);
300+
Logger.error(`Resolving GitHub remotes failed: ${e}`, this.id);
301301
vscode.window.showErrorMessage(vscode.l10n.t('Resolving GitHub remotes failed: {0}', formatError(e)));
302302
return [];
303303
});
@@ -316,7 +316,7 @@ export class FolderRepositoryManager extends Disposable {
316316
const remotesSetting = vscode.workspace.getConfiguration(PR_SETTINGS_NAMESPACE).get<string[]>(REMOTES);
317317

318318
if (!remotesSetting) {
319-
Logger.error(`Unable to read remotes setting`);
319+
Logger.error(`Unable to read remotes setting`, this.id);
320320
return Promise.resolve([]);
321321
}
322322

@@ -621,7 +621,7 @@ export class FolderRepositoryManager extends Disposable {
621621
}
622622

623623
private async getCachedFromGlobalState<T>(userKind: 'assignableUsers' | 'teamReviewers' | 'mentionableUsers' | 'orgProjects'): Promise<{ [key: string]: T[] } | undefined> {
624-
Logger.appendLine(`Trying to use globalState for ${userKind}.`);
624+
Logger.appendLine(`Trying to use globalState for ${userKind}.`, this.id);
625625

626626
const usersCacheLocation = vscode.Uri.joinPath(this.context.globalStorageUri, userKind);
627627
let usersCacheExists;
@@ -631,7 +631,7 @@ export class FolderRepositoryManager extends Disposable {
631631
// file doesn't exit
632632
}
633633
if (!usersCacheExists) {
634-
Logger.appendLine(`GlobalState does not exist for ${userKind}.`);
634+
Logger.appendLine(`GlobalState does not exist for ${userKind}.`, this.id);
635635
return undefined;
636636
}
637637

@@ -646,7 +646,7 @@ export class FolderRepositoryManager extends Disposable {
646646
cacheAsJson = JSON.parse(repoSpecificCache.toString());
647647
} catch (e) {
648648
if (e instanceof Error && e.message.includes('Unexpected non-whitespace character after JSON')) {
649-
Logger.error(`Error parsing ${userKind} cache for ${repo.remote.remoteName}.`);
649+
Logger.error(`Error parsing ${userKind} cache for ${repo.remote.remoteName}.`, this.id);
650650
}
651651
// file doesn't exist
652652
}
@@ -656,11 +656,11 @@ export class FolderRepositoryManager extends Disposable {
656656
}
657657
}))).every(value => value);
658658
if (hasAllRepos) {
659-
Logger.appendLine(`Using globalState ${userKind} for ${Object.keys(cache).length}.`);
659+
Logger.appendLine(`Using globalState ${userKind} for ${Object.keys(cache).length}.`, this.id);
660660
return cache;
661661
}
662662

663-
Logger.appendLine(`No globalState for ${userKind}.`);
663+
Logger.appendLine(`No globalState for ${userKind}.`, this.id);
664664
return undefined;
665665
}
666666

@@ -861,7 +861,7 @@ export class FolderRepositoryManager extends Disposable {
861861
const serverTypes = await Promise.all(
862862
remotes.map(remote => this._githubManager.isGitHub(remote.gitProtocol.normalizeUri()!)),
863863
).catch(e => {
864-
Logger.error(`Resolving GitHub remotes failed: ${e}`);
864+
Logger.error(`Resolving GitHub remotes failed: ${e}`, this.id);
865865
vscode.window.showErrorMessage(vscode.l10n.t('Resolving GitHub remotes failed: {0}', formatError(e)));
866866
return [];
867867
});
@@ -1458,7 +1458,7 @@ export class FolderRepositoryManager extends Disposable {
14581458
return this.createAndAddGitHubRepository(remote, this._credentialStore);
14591459
}
14601460

1461-
Logger.error(`The remote '${upstreamRef.remote}' is not a GitHub repository.`);
1461+
Logger.error(`The remote '${upstreamRef.remote}' is not a GitHub repository.`, this.id);
14621462

14631463
// No GitHubRepository? We currently won't try pushing elsewhere,
14641464
// so fail.
@@ -2461,7 +2461,7 @@ export class FolderRepositoryManager extends Disposable {
24612461
return;
24622462
}
24632463
}
2464-
Logger.error(`Exiting failed: ${e}. Target branch ${branch} used to find branch ${branchObj?.name ?? 'unknown'} with upstream ${branchObj?.upstream?.name ?? 'unknown'}.`);
2464+
Logger.error(`Exiting failed: ${e}. Target branch ${branch} used to find branch ${branchObj?.name ?? 'unknown'} with upstream ${branchObj?.upstream?.name ?? 'unknown'}.`, this.id);
24652465
vscode.window.showErrorMessage(`Exiting failed: ${e}`);
24662466
}
24672467
}

src/github/pullRequestOverview.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -465,7 +465,7 @@ export class PullRequestOverviewPanel extends IssueOverviewPanel<PullRequestMode
465465
});
466466
}
467467
} catch (e) {
468-
Logger.error(formatError(e));
468+
Logger.error(formatError(e), PullRequestOverviewPanel.ID);
469469
vscode.window.showErrorMessage(formatError(e));
470470
} finally {
471471
quickPick?.hide();

src/issues/issueFeatureRegistrar.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ import {
6969
const CREATING_ISSUE_FROM_FILE_CONTEXT = 'issues.creatingFromFile';
7070

7171
export class IssueFeatureRegistrar extends Disposable {
72+
private static readonly ID = 'IssueFeatureRegistrar';
7273
private _stateManager: StateManager;
7374
private _newIssueCache: NewIssueCache;
7475

@@ -1260,7 +1261,7 @@ ${options?.body ?? ''}\n
12601261
}
12611262
if (!folderManager) {
12621263
vscode.window.showErrorMessage(vscode.l10n.t(`Could not find the correct repository for the issue; see logs for more details.`));
1263-
Logger.error(`Could not find the folder manager for the issue originUri: ${originUri.toString()}`);
1264+
Logger.error(`Could not find the folder manager for the issue originUri: ${originUri.toString()}`, IssueFeatureRegistrar.ID);
12641265
return false;
12651266
}
12661267
}

src/view/compareChangesTreeDataProvider.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ class GitCommitNode extends TreeNode {
114114
}
115115

116116
abstract class CompareChangesTreeProvider extends Disposable implements vscode.TreeDataProvider<TreeNode>, BaseTreeNode {
117+
private static readonly ID = 'CompareChangesTreeProvider';
117118
private _view: vscode.TreeView<TreeNode>;
118119
private _children: TreeNode[] | undefined;
119120
private _onDidChangeTreeData = new vscode.EventEmitter<TreeNode | void>();
@@ -188,7 +189,7 @@ abstract class CompareChangesTreeProvider extends Disposable implements vscode.T
188189
this._children = await this.getGitChildren(element);
189190
}
190191
} catch (e) {
191-
Logger.error(`Comparing changes failed: ${e}`);
192+
Logger.error(`Comparing changes failed: ${e}`, CompareChangesTreeProvider.ID);
192193
return [];
193194
}
194195
return this._children;

0 commit comments

Comments
 (0)