Server : Apache System : Linux host44.registrar-servers.com 4.18.0-513.18.1.lve.2.el8.x86_64 #1 SMP Sat Mar 30 15:36:11 UTC 2024 x86_64 User : vapecompany ( 2719) PHP Version : 7.4.33 Disable Function : NONE Directory : /home/vapecompany/demo.vapecompany.com.bd/vendor/facade/ignition/src/Logger/ |
Upload File : |
<?php namespace Facade\Ignition\Logger; use Facade\FlareClient\Flare; use Facade\FlareClient\Report; use Facade\Ignition\Ignition; use Facade\Ignition\Tabs\Tab; use Monolog\Handler\AbstractProcessingHandler; use Monolog\Logger; use Throwable; class FlareHandler extends AbstractProcessingHandler { /** @var \Facade\FlareClient\Flare */ protected $flare; protected $minimumReportLogLevel = Logger::ERROR; public function __construct(Flare $flare, $level = Logger::DEBUG, $bubble = true) { $this->flare = $flare; parent::__construct($level, $bubble); } public function setMinimumReportLogLevel(int $level) { if (! in_array($level, Logger::getLevels())) { throw new \InvalidArgumentException('The given minimum log level is not supported.'); } $this->minimumReportLogLevel = $level; } protected function write(array $report): void { if (! $this->shouldReport($report)) { return; } if ($this->hasException($report)) { /** @var Throwable $throwable */ $throwable = $report['context']['exception']; collect(Ignition::$tabs) ->each(function (Tab $tab) use ($throwable) { $tab->beforeRenderingErrorPage($this->flare, $throwable); }); $this->flare->report($report['context']['exception']); return; } if (config('flare.send_logs_as_events')) { if ($this->hasValidLogLevel($report)) { $this->flare->reportMessage( $report['message'], 'Log ' . Logger::getLevelName($report['level']), function (Report $flareReport) use ($report) { foreach ($report['context'] as $key => $value) { $flareReport->context($key, $value); } } ); } } } protected function shouldReport(array $report): bool { if (! config('flare.key')) { return false; } return $this->hasException($report) || $this->hasValidLogLevel($report); } protected function hasException(array $report): bool { $context = $report['context']; return isset($context['exception']) && $context['exception'] instanceof Throwable; } protected function hasValidLogLevel(array $report): bool { return $report['level'] >= $this->minimumReportLogLevel; } }