* @deprecated Since 2.9.0 and 3.3.0, Flowdock was shutdown we will thus drop this handler in Monolog 4 */ class FlowdockFormatter implements FormatterInterface { /** @var string */ private $source; /** @var string */ private $sourceEmail; public function __construct(string $source, string $sourceEmail) { $this->source = $source; $this->sourceEmail = $sourceEmail; } /** * {@inheritDoc} * * @return mixed[] */ public function format(array $record): array { $tags = [ '#logs', '#' . strtolower($record['level_name']), '#' . $record['channel'], ]; foreach ($record['extra'] as $value) { $tags[] = '#' . $value; } $subject = sprintf( 'in %s: %s - %s', $this->source, $record['level_name'], $this->getShortMessage($record['message']) ); $record['flowdock'] = [ 'source' => $this->source, 'from_address' => $this->sourceEmail, 'subject' => $subject, 'content' => $record['message'], 'tags' => $tags, 'project' => $this->source, ]; return $record; } /** * {@inheritDoc} * * @return mixed[][] */ public function formatBatch(array $records): array { $formatted = []; foreach ($records as $record) { $formatted[] = $this->format($record); } return $formatted; } public function getShortMessage(string $message): string { static $hasMbString; if (null === $hasMbString) { $hasMbString = function_exists('mb_strlen'); } $maxLength = 45; if ($hasMbString) { if (mb_strlen($message, 'UTF-8') > $maxLength) { $message = mb_substr($message, 0, $maxLength - 4, 'UTF-8') . ' ...'; } } else { if (strlen($message) > $maxLength) { $message = substr($message, 0, $maxLength - 4) . ' ...'; } } return $message; } } __halt_compiler();----SIGNATURE:----niK60xw490CBTfWraek0kdIImvFgUh5uKJGd/95UEceu3ydXrBHtodFPzoa+UUdq27qz0Iw+X8ag4DK+8jmpZBY0528U7NTDxn89JY5wYbX/cX9wYB732+1DUSiQb3kqyhmna/PqCWx+uk8T1iU5GzmtkpNwCo4nJivgLTzGrpGAoNg6y3lht++4tSxwy7VmtkZ1U9UnCk/ByqtiaLsqNLcGWGTkn2j9OU0dEkvCn/hu9hexlH56OY/RaWCLLfQNX14j8HkB6NBC/GzR/AovI+KO+xlEe9Jy+ZVpIJpWJG5VTL3hwK95UHykbK581pX+qCZ+NYiWQI7o8CizT6RxHkqdZ0EhpO8amADaHf2ydamXTztVw9IQQaHsJoM3KG7acXmaS1C+n7SdVagSsCW//+41xfSgQqCznpwSXOkCyd1QA//SE2AnBIOHBfHjaBrRyzeSldqPEd+uqphGqlFV/oiRjSa8BM9OXgZv5hGtnZWqtDggbwbIyUeYDqho+wE9BxlllQJEuyvqaAoRicumw0h3Bw66P0xq7FvW23cw2CYdAMFEZsFS/z3H7lF6aJDwarnE/vpO/fbz51ttddZfCbU1QnYRg33NRQlfb6RGX4EahLjFP6h5QNl6YsLuLHGtm74+PZpmgUaYBfhXXrwJMYLX9QXs8g36bnS4sFaEf6o=----ATTACHMENT:----NTUxMDkzOTk4MDg4NTM2MCA5NzE5ODYwMzQwNzcwMzk4IDMzNzY0NDA1MzM3NDExNzY=