friendship ended with social-app. php is my new best friend
at main 1.5 kB view raw
1<?php declare(strict_types = 1); 2 3namespace Contributte\Logging\Slack\Formatter; 4 5use Throwable; 6use Tracy\Helpers; 7 8final class ExceptionFormatter implements IFormatter 9{ 10 11 public function format(SlackContext $context, Throwable $exception, string $priority): SlackContext 12 { 13 $context = clone $context; 14 15 $attachment = $context->createAttachment(); 16 $attachment->setColor('danger'); 17 $attachment->setMarkdown(); 18 19 $message = $attachment->createField(); 20 $message->setTitle(':date: Date'); 21 $message->setValue(@date('[d.m.Y]')); 22 $message->setShort(); 23 24 $message = $attachment->createField(); 25 $message->setTitle(':timer_clock: Time'); 26 $message->setValue(@date('[H:i:s]')); 27 $message->setShort(); 28 29 $message = $attachment->createField(); 30 $message->setTitle(':computer: Source'); 31 $message->setValue(Helpers::getSource()); 32 33 $message = $attachment->createField(); 34 $message->setTitle(':mag_right: Exception'); 35 $message->setValue(get_class($exception)); 36 37 $message = $attachment->createField(); 38 $message->setTitle(':envelope: Message'); 39 $message->setValue($exception->getMessage()); 40 $message->setShort(); 41 42 $code = $attachment->createField(); 43 $code->setTitle(':1234: Code'); 44 $code->setValue((string) $exception->getCode()); 45 $code->setShort(); 46 47 $file = $attachment->createField(); 48 $file->setTitle(':open_file_folder: File'); 49 $file->setValue('```' . $exception->getFile() . ':' . $exception->getLine() . '```'); 50 51 return $context; 52 } 53 54}