Overview

Packages

  • Log
    • Filters
    • Formatters
    • Handlers

Classes

  • Horde_Log_Formatter_Simple
  • Horde_Log_Formatter_Xml
  • Overview
  • Package
  • Class
  • Tree
 1: <?php
 2: /**
 3:  * Horde Log package
 4:  *
 5:  * This package is based on Zend_Log from the Zend Framework
 6:  * (http://framework.zend.com).  Both that package and this
 7:  * one were written by Mike Naberezny and Chuck Hagenbuch.
 8:  *
 9:  * @author     Mike Naberezny <mike@maintainable.com>
10:  * @author     Chuck Hagenbuch <chuck@horde.org>
11:  * @category   Horde
12:  * @license    http://www.horde.org/licenses/bsd BSD
13:  * @package    Log
14:  * @subpackage Formatters
15:  */
16: 
17: /**
18:  * @author     Mike Naberezny <mike@maintainable.com>
19:  * @author     Chuck Hagenbuch <chuck@horde.org>
20:  * @category   Horde
21:  * @license    http://www.horde.org/licenses/bsd BSD
22:  * @package    Log
23:  * @subpackage Formatters
24:  */
25: class Horde_Log_Formatter_Xml implements Horde_Log_Formatter
26: {
27:     /**
28:      * Config options.
29:      *
30:      * @var array
31:      */
32:     protected $_options = array(
33:         'elementEntry'     => 'log',
34:         'elementTimestamp' => 'timestamp',
35:         'elementMessage'   => 'message',
36:         'elementLevel'     => 'level',
37:         'lineEnding'       => PHP_EOL
38:     );
39: 
40:     /**
41:      * Constructor.
42:      *
43:      * TODO
44:      */
45:     public function __construct($options = array())
46:     {
47:         $this->_options = array_merge($this->_options, $options);
48:     }
49: 
50:     /**
51:      * Formats an event to be written by the handler.
52:      *
53:      * @param array $event  Log event.
54:      *
55:      * @return string  XML string.
56:      */
57:     public function format($event)
58:     {
59:         $dom = new DOMDocument();
60: 
61:         $elt = $dom->appendChild(new DOMElement($this->_options['elementEntry']));
62:         $elt->appendChild(new DOMElement($this->_options['elementTimestamp'], date('c')));
63:         $elt->appendChild(new DOMElement($this->_options['elementMessage'], $event['message']));
64:         $elt->appendChild(new DOMElement($this->_options['elementLevel'], $event['level']));
65: 
66:         return preg_replace('/<\?xml version="1.0"( encoding="[^\"]*")?\?>\n/u', '', $dom->saveXML()) . $this->_options['lineEnding'];
67:     }
68: 
69: }
70: 
API documentation generated by ApiGen