| @@ 97-135 (lines=39) @@ | ||
| 94 | * @param array $record |
|
| 95 | * @return array |
|
| 96 | */ |
|
| 97 | private function backtrace($record) |
|
| 98 | { |
|
| 99 | // Provided trace |
|
| 100 | if (!empty($record['context']['trace'])) { |
|
| 101 | return $record['context']['trace']; |
|
| 102 | } |
|
| 103 | ||
| 104 | // Generate trace from exception |
|
| 105 | if (isset($record['context']['exception'])) { |
|
| 106 | /** @var Exception $exception */ |
|
| 107 | $exception = $record['context']['exception']; |
|
| 108 | return $exception->getTrace(); |
|
| 109 | } |
|
| 110 | ||
| 111 | // Failover: build custom trace |
|
| 112 | $bt = debug_backtrace(); |
|
| 113 | ||
| 114 | // Push current line into context |
|
| 115 | array_unshift($bt, [ |
|
| 116 | 'file' => !empty($bt['file']) ? $bt['file'] : 'N/A', |
|
| 117 | 'line' => !empty($bt['line']) ? $bt['line'] : 'N/A', |
|
| 118 | 'function' => '', |
|
| 119 | 'class' => '', |
|
| 120 | 'type' => '', |
|
| 121 | 'args' => [], |
|
| 122 | ]); |
|
| 123 | ||
| 124 | $bt = Backtrace::filter_backtrace($bt, [ |
|
| 125 | '', |
|
| 126 | 'Monolog\\Handler\\AbstractProcessingHandler->handle', |
|
| 127 | 'Monolog\\Logger->addRecord', |
|
| 128 | 'Monolog\\Logger->log', |
|
| 129 | 'Monolog\\Logger->warn', |
|
| 130 | 'PhpTek\\Sentry\\Handler\\SentryMonologHandler->write', |
|
| 131 | 'PhpTek\\Sentry\\Handler\\SentryMonologHandler->backtrace', |
|
| 132 | ]); |
|
| 133 | ||
| 134 | return $bt; |
|
| 135 | } |
|
| 136 | ||
| 137 | /** |
|
| 138 | * Returns a default set of additional data specific to the user's part in |
|
| @@ 297-333 (lines=37) @@ | ||
| 294 | * @return array |
|
| 295 | * @todo Unused in sentry-sdk 2.0?? |
|
| 296 | */ |
|
| 297 | public static function backtrace(array $record) : array |
|
| 298 | { |
|
| 299 | // Provided trace |
|
| 300 | if (!empty($record['context']['trace'])) { |
|
| 301 | return $record['context']['trace']; |
|
| 302 | } |
|
| 303 | ||
| 304 | // Generate trace from exception |
|
| 305 | if (isset($record['context']['exception'])) { |
|
| 306 | $exception = $record['context']['exception']; |
|
| 307 | ||
| 308 | return $exception->getTrace(); |
|
| 309 | } |
|
| 310 | ||
| 311 | // Failover: build custom trace |
|
| 312 | $bt = debug_backtrace(); |
|
| 313 | ||
| 314 | // Push current line into context |
|
| 315 | array_unshift($bt, [ |
|
| 316 | 'file' => !empty($bt['file']) ? $bt['file'] : 'N/A', |
|
| 317 | 'line' => !empty($bt['line']) ? $bt['line'] : 'N/A', |
|
| 318 | 'function' => '', |
|
| 319 | 'class' => '', |
|
| 320 | 'type' => '', |
|
| 321 | 'args' => [], |
|
| 322 | ]); |
|
| 323 | ||
| 324 | return Backtrace::filter_backtrace($bt, [ |
|
| 325 | '', |
|
| 326 | 'Monolog\\Handler\\AbstractProcessingHandler->handle', |
|
| 327 | 'Monolog\\Logger->addRecord', |
|
| 328 | 'Monolog\\Logger->log', |
|
| 329 | 'Monolog\\Logger->warn', |
|
| 330 | 'PhpTek\\Sentry\\Handler\\SentryMonologHandler->write', |
|
| 331 | 'PhpTek\\Sentry\\Handler\\SentryMonologHandler->backtrace', |
|
| 332 | ]); |
|
| 333 | } |
|
| 334 | ||
| 335 | } |
|
| 336 | ||