You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

46 lines
1.2KB

  1. <?php
  2. namespace App\Util;
  3. use Exception;
  4. use Illuminate\Support\Facades\Log;
  5. class LoggingUtil
  6. {
  7. public static function debugException(Exception $e, string|array $messages = [])
  8. {
  9. Log::debug(self::getExceptionContents($e, $messages));
  10. }
  11. public static function infoException(Exception $e, string|array $messages = [])
  12. {
  13. Log::error(self::getExceptionContents($e, $messages));
  14. }
  15. public static function warnException(Exception $e, string|array $messages = [])
  16. {
  17. Log::error(self::getExceptionContents($e, $messages));
  18. }
  19. public static function errorException(Exception $e, string|array $messages = [])
  20. {
  21. Log::error(self::getExceptionContents($e, $messages));
  22. }
  23. private static function getExceptionContents(Exception $e, string|array $messages)
  24. {
  25. if (is_string($messages)) {
  26. $message = $messages;
  27. $messages = [];
  28. $messages[] = $message;
  29. }
  30. return [
  31. ...$messages,
  32. '_message' => $e->getMessage(),
  33. '_file' => $e->getFile(),
  34. '_line' => $e->getLine(),
  35. '_exceptionType' => $e::class,
  36. ];
  37. }
  38. }