Skip to content

Commit cbcf89d

Browse files
Add sentry to extension (RooCodeInc#2766)
* Add Sentry package * Setup Logger to use Error Service * Update src/services/error/ErrorService.ts Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> --------- Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
1 parent 6a10e30 commit cbcf89d

File tree

4 files changed

+115
-1
lines changed

4 files changed

+115
-1
lines changed

package-lock.json

Lines changed: 76 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -375,6 +375,7 @@
375375
"@opentelemetry/sdk-node": "^0.39.1",
376376
"@opentelemetry/sdk-trace-node": "^1.30.1",
377377
"@opentelemetry/semantic-conventions": "^1.30.0",
378+
"@sentry/browser": "^9.12.0",
378379
"@vscode/codicons": "^0.0.36",
379380
"axios": "^1.8.2",
380381
"cheerio": "^1.0.0",

src/services/error/ErrorService.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import * as Sentry from "@sentry/browser"
2+
3+
// Initialize sentry
4+
Sentry.init({
5+
dsn: "https://7936780e3f0f0290fcf8d4a395c249b7@o4509028819664896.ingest.us.sentry.io/4509052955983872",
6+
})
7+
8+
export class ErrorService {
9+
static logException(error: Error): void {
10+
// Log the error to Sentry
11+
Sentry.captureException(error)
12+
}
13+
14+
static logMessage(message: string, level: "error" | "warning" | "log" | "debug" | "info" = "log"): void {
15+
// Log a message to Sentry
16+
Sentry.captureMessage(message, { level })
17+
}
18+
}

src/services/logging/Logger.ts

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import type { OutputChannel } from "vscode"
2+
import { ErrorService } from "../error/ErrorService"
23

34
/**
45
* Simple logging utility for the extension's backend code.
@@ -12,7 +13,25 @@ export class Logger {
1213
Logger.outputChannel = outputChannel
1314
}
1415

16+
static error(message: string, exception?: Error) {
17+
Logger.outputChannel.appendLine(`ERROR: ${message}`)
18+
ErrorService.logMessage(message, "error")
19+
exception && ErrorService.logException(exception)
20+
}
21+
static warn(message: string) {
22+
Logger.outputChannel.appendLine(`WARN: ${message}`)
23+
ErrorService.logMessage(message, "warning")
24+
}
1525
static log(message: string) {
16-
Logger.outputChannel.appendLine(message)
26+
Logger.outputChannel.appendLine(`LOG: ${message}`)
27+
}
28+
static debug(message: string) {
29+
Logger.outputChannel.appendLine(`DEBUG: ${message}`)
30+
}
31+
static info(message: string) {
32+
Logger.outputChannel.appendLine(`INFO: ${message}`)
33+
}
34+
static trace(message: string) {
35+
Logger.outputChannel.appendLine(`TRACE: ${message}`)
1736
}
1837
}

0 commit comments

Comments
 (0)