ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
FlowdockFormatter.php
Go to the documentation of this file.
1<?php
2
3/*
4 * This file is part of the Monolog package.
5 *
6 * (c) Jordi Boggiano <j.boggiano@seld.be>
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11
12namespace Monolog\Formatter;
13
20{
24 private $source;
25
29 private $sourceEmail;
30
36 {
37 $this->source = $source;
38 $this->sourceEmail = $sourceEmail;
39 }
40
44 public function format(array $record)
45 {
46 $tags = array(
47 '#logs',
48 '#' . strtolower($record['level_name']),
49 '#' . $record['channel'],
50 );
51
52 foreach ($record['extra'] as $value) {
53 $tags[] = '#' . $value;
54 }
55
56 $subject = sprintf(
57 'in %s: %s - %s',
58 $this->source,
59 $record['level_name'],
60 $this->getShortMessage($record['message'])
61 );
62
63 $record['flowdock'] = array(
64 'source' => $this->source,
65 'from_address' => $this->sourceEmail,
66 'subject' => $subject,
67 'content' => $record['message'],
68 'tags' => $tags,
69 'project' => $this->source,
70 );
71
72 return $record;
73 }
74
78 public function formatBatch(array $records)
79 {
80 $formatted = array();
81
82 foreach ($records as $record) {
83 $formatted[] = $this->format($record);
84 }
85
86 return $formatted;
87 }
88
94 public function getShortMessage($message)
95 {
96 static $hasMbString;
97
98 if (null === $hasMbString) {
99 $hasMbString = function_exists('mb_strlen');
100 }
101
102 $maxLength = 45;
103
104 if ($hasMbString) {
105 if (mb_strlen($message, 'UTF-8') > $maxLength) {
106 $message = mb_substr($message, 0, $maxLength - 4, 'UTF-8') . ' ...';
107 }
108 } else {
109 if (strlen($message) > $maxLength) {
110 $message = substr($message, 0, $maxLength - 4) . ' ...';
111 }
112 }
113
114 return $message;
115 }
116}
An exception for terminatinating execution or to throw for unit testing.
formats the record to be used in the FlowdockHandler
formatBatch(array $records)
{Formats a set of log records.mixed The formatted set of records}
format(array $record)
{Formats a log record.mixed The formatted record}
$tags
Definition: croninfo.php:19
catch(Exception $e) $message
$records
Definition: simple_test.php:22