scratch – Blame information for rev 115
?pathlinks?
Rev | Author | Line No. | Line |
---|---|---|---|
115 | office | 1 | <?php |
2 | /* |
||
3 | * This file is part of the Monolog package. |
||
4 | * |
||
5 | * (c) Jordi Boggiano <j.boggiano@seld.be> |
||
6 | * |
||
7 | * For the full copyright and license information, please view the LICENSE |
||
8 | * file that was distributed with this source code. |
||
9 | */ |
||
10 | |||
11 | namespace Monolog\Handler; |
||
12 | |||
13 | use Monolog\Formatter\NormalizerFormatter; |
||
14 | use Monolog\Logger; |
||
15 | |||
16 | /** |
||
17 | * Handler sending logs to Zend Monitor |
||
18 | * |
||
19 | * @author Christian Bergau <cbergau86@gmail.com> |
||
20 | */ |
||
21 | class ZendMonitorHandler extends AbstractProcessingHandler |
||
22 | { |
||
23 | /** |
||
24 | * Monolog level / ZendMonitor Custom Event priority map |
||
25 | * |
||
26 | * @var array |
||
27 | */ |
||
28 | protected $levelMap = array( |
||
29 | Logger::DEBUG => 1, |
||
30 | Logger::INFO => 2, |
||
31 | Logger::NOTICE => 3, |
||
32 | Logger::WARNING => 4, |
||
33 | Logger::ERROR => 5, |
||
34 | Logger::CRITICAL => 6, |
||
35 | Logger::ALERT => 7, |
||
36 | Logger::EMERGENCY => 0, |
||
37 | ); |
||
38 | |||
39 | /** |
||
40 | * Construct |
||
41 | * |
||
42 | * @param int $level |
||
43 | * @param bool $bubble |
||
44 | * @throws MissingExtensionException |
||
45 | */ |
||
46 | public function __construct($level = Logger::DEBUG, $bubble = true) |
||
47 | { |
||
48 | if (!function_exists('zend_monitor_custom_event')) { |
||
49 | throw new MissingExtensionException('You must have Zend Server installed in order to use this handler'); |
||
50 | } |
||
51 | parent::__construct($level, $bubble); |
||
52 | } |
||
53 | |||
54 | /** |
||
55 | * {@inheritdoc} |
||
56 | */ |
||
57 | protected function write(array $record) |
||
58 | { |
||
59 | $this->writeZendMonitorCustomEvent( |
||
60 | $this->levelMap[$record['level']], |
||
61 | $record['message'], |
||
62 | $record['formatted'] |
||
63 | ); |
||
64 | } |
||
65 | |||
66 | /** |
||
67 | * Write a record to Zend Monitor |
||
68 | * |
||
69 | * @param int $level |
||
70 | * @param string $message |
||
71 | * @param array $formatted |
||
72 | */ |
||
73 | protected function writeZendMonitorCustomEvent($level, $message, $formatted) |
||
74 | { |
||
75 | zend_monitor_custom_event($level, $message, $formatted); |
||
76 | } |
||
77 | |||
78 | /** |
||
79 | * {@inheritdoc} |
||
80 | */ |
||
81 | public function getDefaultFormatter() |
||
82 | { |
||
83 | return new NormalizerFormatter(); |
||
84 | } |
||
85 | |||
86 | /** |
||
87 | * Get the level map |
||
88 | * |
||
89 | * @return array |
||
90 | */ |
||
91 | public function getLevelMap() |
||
92 | { |
||
93 | return $this->levelMap; |
||
94 | } |
||
95 | } |