Skip to content

Commit

Permalink
Merge pull request #296 from ryanluker/cleanup-sentry-error-logging
Browse files Browse the repository at this point in the history
[#???] Adjust sentry logging to remove warnings
  • Loading branch information
ryanluker authored Mar 6, 2021
2 parents c15ac1a + 64aeb61 commit 95bab88
Show file tree
Hide file tree
Showing 10 changed files with 87 additions and 163 deletions.
138 changes: 35 additions & 103 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "vscode-coverage-gutters",
"displayName": "Coverage Gutters",
"description": "Display test coverage generated by lcov or xml - works with many languages",
"version": "2.7.0",
"version": "2.7.1",
"license": "MIT",
"repository": {
"type": "git",
Expand Down Expand Up @@ -272,12 +272,12 @@
"cross-env": "5.2.0",
"mocha": "6.1.4",
"tslint": "5.16.0",
"typescript": "3.4.5",
"typescript": "4.2.3",
"vscode": "1.1.34"
},
"dependencies": {
"@cvrg-report/clover-json": "0.3.2",
"@sentry/node": "5.18.1",
"@sentry/browser": "6.2.1",
"cobertura-parse": "github:vokal/cobertura-parse#53109a6",
"glob": "7.1.4",
"jacoco-parse": "2.0.1",
Expand Down
5 changes: 4 additions & 1 deletion src/coverage-system/coverage.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,10 @@ export class Coverage {
fileQuickPicks,
{placeHolder},
);
if (!item) { throw new Error("Did not choose a file!"); }
if (!item) {
window.showWarningMessage("Did not choose a file!");
return;
}

pickedFile = item.description;
}
Expand Down
49 changes: 15 additions & 34 deletions src/coverage-system/coverageservice.ts
Original file line number Diff line number Diff line change
Expand Up @@ -88,25 +88,21 @@ export class CoverageService {
}

private async loadCache() {
try {
this.updateServiceState(Status.loading);
const files = await this.filesLoader.findCoverageFiles();
this.outputChannel.appendLine(
`[${Date.now()}][coverageservice]: Loading ${files.size} file(s)`,
);
const dataFiles = await this.filesLoader.loadDataFiles(files);
this.outputChannel.appendLine(
`[${Date.now()}][coverageservice]: Loaded ${dataFiles.size} data file(s)`,
);
const dataCoverage = await this.coverageParser.filesToSections(dataFiles);
this.outputChannel.appendLine(
`[${Date.now()}][coverageservice]: Caching ${dataCoverage.size} coverage(s)`,
);
this.cache = dataCoverage;
this.updateServiceState(Status.ready);
} catch (error) {
this.handleError(error);
}
this.updateServiceState(Status.loading);
const files = await this.filesLoader.findCoverageFiles();
this.outputChannel.appendLine(
`[${Date.now()}][coverageservice]: Loading ${files.size} file(s)`,
);
const dataFiles = await this.filesLoader.loadDataFiles(files);
this.outputChannel.appendLine(
`[${Date.now()}][coverageservice]: Loaded ${dataFiles.size} data file(s)`,
);
const dataCoverage = await this.coverageParser.filesToSections(dataFiles);
this.outputChannel.appendLine(
`[${Date.now()}][coverageservice]: Caching ${dataCoverage.size} coverage(s)`,
);
this.cache = dataCoverage;
this.updateServiceState(Status.ready);
}

private updateServiceState(state: Status) {
Expand Down Expand Up @@ -173,19 +169,4 @@ export class CoverageService {
this.handleEditorEvents.bind(this),
);
}

private handleError(error: Error) {
const message = error.message ? error.message : error;
const stackTrace = error.stack;
window.showWarningMessage(message.toString());
this.outputChannel.appendLine(`[${Date.now()}][gutters]: Error ${message}`);
this.outputChannel.appendLine(`[${Date.now()}][gutters]: Stacktrace ${stackTrace}`);

const crashReporter = new CrashReporter();

if (crashReporter.checkEnabled()) {
const [ sentryId, sentryPrompt ] = crashReporter.captureError(error);
this.outputChannel.appendLine(`[${Date.now()}][gutters]: ${sentryPrompt} ${sentryId}`);
}
}
}
5 changes: 3 additions & 2 deletions src/extension/crashreporter.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import * as Sentry from "@sentry/node";
import * as Sentry from "@sentry/browser";
import { v4 as uuidv4 } from "uuid";
import {
workspace,
Expand All @@ -15,9 +15,10 @@ export class CrashReporter {
// Leaving default integrations on captures crashes from other extension hosts
// Turning this off fixes that issue and still allows us to capture errors manually
Sentry.init({
autoSessionTracking: true,
defaultIntegrations: false,
dsn: "https://[email protected]/5288283",
release: "[email protected].0",
release: "[email protected].1",
});
Sentry.configureScope(function(scope) {
// Generate a random string for this session
Expand Down
17 changes: 8 additions & 9 deletions src/extension/gutters.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,10 @@ export class Gutters {
coverageReports,
"Choose a Coverage Report to preview.",
);
if (!pickedReport) { throw new Error("Could not show Coverage Report file!"); }
if (!pickedReport) {
window.showWarningMessage("Could not show Coverage Report file!");
return;
}

const previewPanel = new PreviewPanel(pickedReport);

Expand Down Expand Up @@ -71,15 +74,15 @@ export class Gutters {
this.statusBar.toggle(false);
this.coverageService.dispose();
} catch (error) {
this.handleError("removeWatch", error, false);
this.handleError("removeWatch", error);
}
}

public removeCoverageForActiveFile() {
try {
this.coverageService.removeCoverageForCurrentEditor();
} catch (error) {
this.handleError("removeCoverageForActiveFile", error, false);
this.handleError("removeCoverageForActiveFile", error);
}
}

Expand All @@ -88,21 +91,17 @@ export class Gutters {
this.coverageService.dispose();
this.statusBar.dispose();
} catch (error) {
this.handleError("dispose", error, false);
this.handleError("dispose", error);
}
}

private handleError(area: string, error: Error, showMessage: boolean = true) {
private handleError(area: string, error: Error) {
const message = error.message ? error.message : error;
const stackTrace = error.stack;
if (showMessage) {
window.showWarningMessage(message.toString());
}
this.outputChannel.appendLine(`[${Date.now()}][${area}]: ${message}`);
this.outputChannel.appendLine(`[${Date.now()}][${area}]: ${stackTrace}`);

const crashReporter = new CrashReporter();

if (crashReporter.checkEnabled()) {
const [ sentryId, sentryPrompt ] = crashReporter.captureError(error);
this.outputChannel.appendLine(`[${Date.now()}][${area}]: ${sentryPrompt} ${sentryId}`);
Expand Down
7 changes: 5 additions & 2 deletions src/files/filesloader.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import {readFile} from "fs";
import * as glob from "glob";
import {workspace, WorkspaceFolder} from "vscode";
import {window, workspace, WorkspaceFolder} from "vscode";
import {Config} from "../extension/config";

export class FilesLoader {
Expand All @@ -21,7 +21,10 @@ export class FilesLoader {
} else {
const fileNames = this.configStore.coverageFileNames;
const files = await this.findCoverageInWorkspace(fileNames);
if (!files.size) { throw new Error("Could not find a Coverage file!"); }
if (!files.size) {
window.showWarningMessage("Could not find a Coverage file!");
return new Set();
}
return files;
}
}
Expand Down
Loading

0 comments on commit 95bab88

Please sign in to comment.