vendor/sentry/sentry/src/Monolog/CompatibilityProcessingHandlerTrait.php line 76

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace Sentry\Monolog;
  4. use Monolog\Level;
  5. use Monolog\Logger;
  6. use Monolog\LogRecord;
  7. use Sentry\Severity;
  8. if (Logger::API >= 3) {
  9.     /**
  10.      * Logic which is used if monolog >= 3 is installed.
  11.      *
  12.      * @internal
  13.      */
  14.     trait CompatibilityProcessingHandlerTrait
  15.     {
  16.         /**
  17.          * @param array<string, mixed>|LogRecord $record
  18.          */
  19.         abstract protected function doWrite($record): void;
  20.         /**
  21.          * {@inheritdoc}
  22.          */
  23.         protected function write(LogRecord $record): void
  24.         {
  25.             $this->doWrite($record);
  26.         }
  27.         /**
  28.          * Translates the Monolog level into the Sentry severity.
  29.          */
  30.         private static function getSeverityFromLevel(int $level): Severity
  31.         {
  32.             $level Level::from($level);
  33.             switch ($level) {
  34.                 case Level::Debug:
  35.                     return Severity::debug();
  36.                 case Level::Warning:
  37.                     return Severity::warning();
  38.                 case Level::Error:
  39.                     return Severity::error();
  40.                 case Level::Critical:
  41.                 case Level::Alert:
  42.                 case Level::Emergency:
  43.                     return Severity::fatal();
  44.                 case Level::Info:
  45.                 case Level::Notice:
  46.                 default:
  47.                     return Severity::info();
  48.             }
  49.         }
  50.     }
  51. } else {
  52.     /**
  53.      * Logic which is used if monolog < 3 is installed.
  54.      *
  55.      * @internal
  56.      */
  57.     trait CompatibilityProcessingHandlerTrait
  58.     {
  59.         /**
  60.          * @param array<string, mixed>|LogRecord $record
  61.          */
  62.         abstract protected function doWrite($record): void;
  63.         /**
  64.          * {@inheritdoc}
  65.          */
  66.         protected function write(array $record): void
  67.         {
  68.             $this->doWrite($record);
  69.         }
  70.         /**
  71.          * Translates the Monolog level into the Sentry severity.
  72.          *
  73.          * @param Logger::DEBUG|Logger::INFO|Logger::NOTICE|Logger::WARNING|Logger::ERROR|Logger::CRITICAL|Logger::ALERT|Logger::EMERGENCY $level The Monolog log level
  74.          */
  75.         private static function getSeverityFromLevel(int $level): Severity
  76.         {
  77.             switch ($level) {
  78.                 case Logger::DEBUG:
  79.                     return Severity::debug();
  80.                 case Logger::WARNING:
  81.                     return Severity::warning();
  82.                 case Logger::ERROR:
  83.                     return Severity::error();
  84.                 case Logger::CRITICAL:
  85.                 case Logger::ALERT:
  86.                 case Logger::EMERGENCY:
  87.                     return Severity::fatal();
  88.                 case Logger::INFO:
  89.                 case Logger::NOTICE:
  90.                 default:
  91.                     return Severity::info();
  92.             }
  93.         }
  94.     }
  95. }