Skip to content
23 changes: 20 additions & 3 deletions src/Logger/Adapter/HoneyBadger.php
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,25 @@ public function push(Log $log): int
]);
}

$stackFrames = [];

if (isset($log->getExtra()['stackTrace'])) {
$detailedTrace = $log->getExtra()['stackTrace'];
if (!is_array($detailedTrace)) {
throw new Exception("stackTrace must be an array");
}
foreach ($detailedTrace as $trace) {
if (!is_array($trace)) {
throw new Exception("stackTrace must be an array of arrays");
}
\array_push($stackFrames, [
'number' => $trace['number'],
'file' => $trace['file'],
'method' => $trace['method'],
]);
}
}
Comment thread
2002Bishwajeet marked this conversation as resolved.
Outdated

$requestBody = [
'notifier' => [
'name' => 'utopia-logger',
Expand All @@ -62,9 +81,7 @@ public function push(Log $log): int
'error' => [
'class' => $log->getType(),
'message' => $log->getMessage(),
'backtrace' => [],
//TODO: Add causes
'causes' => []
'backtrace' => $stackFrames,
],
'breadcrumbs' => [
"enabled" => true,
Expand Down
1 change: 1 addition & 0 deletions tests/LoggerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,7 @@ public function testAdapters(): void
$log->addExtra('isExpected', true);
$log->addExtra('file', '/User/example/server/src/server/server.js');
$log->addExtra('line', '15');
$log->addExtra('stackTrace', [["number" => 15, "file" => "User/example/server/src/server/server.js", "method" => "runtime_error"]]);

// Test Sentry
$adapter = new Sentry(\getenv("TEST_SENTRY_KEY") . ';' . \getenv("TEST_SENTRY_PROJECT_ID") . ';' . \getenv("TEST_SENTRY_HOST"));
Expand Down