Skip to content

Commit ce9f8e3

Browse files
committed
Forward logger.error calls to sentry through Logger.onError
1 parent 32df4b1 commit ce9f8e3

File tree

2 files changed

+34
-5
lines changed

2 files changed

+34
-5
lines changed

apps/webapp/app/services/logger.server.ts

Lines changed: 33 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { Logger } from "@trigger.dev/core/logger";
33
import { sensitiveDataReplacer } from "./sensitiveDataReplacer";
44
import { AsyncLocalStorage } from "async_hooks";
55
import { getHttpContext } from "./httpAsyncStorage.server";
6-
import { captureMessage } from "@sentry/remix";
6+
import { captureException, captureMessage } from "@sentry/remix";
77

88
const currentFieldsStore = new AsyncLocalStorage<Record<string, unknown>>();
99

@@ -12,11 +12,40 @@ export function trace<T>(fields: Record<string, unknown>, fn: () => T): T {
1212
}
1313

1414
Logger.onError = (message, ...args) => {
15-
captureMessage(message, {
16-
level: "error",
17-
});
15+
const error = extractErrorFromArgs(args);
16+
17+
if (error) {
18+
captureException(error, {
19+
extra: {
20+
message,
21+
...flattenArgs(args),
22+
},
23+
});
24+
} else {
25+
captureMessage(message, {
26+
level: "error",
27+
extra: flattenArgs(args),
28+
});
29+
}
1830
};
1931

32+
function extractErrorFromArgs(args: Array<Record<string, unknown> | undefined>) {
33+
for (const arg of args) {
34+
if (arg && "error" in arg && arg.error instanceof Error) {
35+
return arg.error;
36+
}
37+
}
38+
return;
39+
}
40+
41+
function flattenArgs(args: Array<Record<string, unknown> | undefined>) {
42+
return args.reduce((acc, arg) => {
43+
if (arg) {
44+
return { ...acc, ...arg };
45+
}
46+
return acc;
47+
}, {});
48+
}
2049
export const logger = new Logger(
2150
"webapp",
2251
(process.env.APP_LOG_LEVEL ?? "debug") as LogLevel,

apps/webapp/upload-sourcemaps.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#!/bin/bash
2-
set -euo pipefail
2+
set -eo pipefail
33

44
if [ -n "$SENTRY_ORG" ] && [ -n "$SENTRY_PROJECT" ] && [ -n "$SENTRY_AUTH_TOKEN" ] && [ -n "$SENTRY_RELEASE" ]; then
55
sentry-cli releases new $SENTRY_RELEASE

0 commit comments

Comments
 (0)