scratch – Blame information for rev 115

Subversion Repositories:
Rev:
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 }