--- /dev/null
+<?php
+/**
+ * Horde Log package
+ *
+ * @category Horde
+ * @package Horde_Log
+ * @subpackage Handlers
+ * @author Mike Naberezny <mike@maintainable.com>
+ * @author Chuck Hagenbuch <chuck@horde.org>
+ * @license http://opensource.org/licenses/bsd-license.php BSD
+ */
+
+/**
+ * @category Horde
+ * @package Horde_Log
+ * @subpackage Handlers
+ * @author Mike Naberezny <mike@maintainable.com>
+ * @author Chuck Hagenbuch <chuck@horde.org>
+ * @license http://opensource.org/licenses/bsd-license.php BSD
+ */
+class Horde_Log_Handler_Scribe extends Horde_Log_Handler_Base
+{
+ /**
+ * Scribe client
+ * @var Horde_Scribe_Client
+ */
+ protected $_scribe;
+
+ /**
+ * Formats the log message before writing.
+ * @var Horde_Log_Formatter_Interface
+ */
+ protected $_formatter;
+
+ /**
+ * Options to be set by setOption().
+ * @var array
+ */
+ protected $_options = array(
+ 'category' => 'default',
+ 'addNewline' => false,
+ );
+
+ /**
+ * Class Constructor
+ *
+ * @param Horde_Scribe_Client $scribe Scribe client
+ * @param Horde_Log_Formatter_Interface $formatter Log formatter
+ */
+ public function __construct(Horde_Scribe_Client $scribe,
+ Horde_Log_Formatter_Interface $formatter = null)
+ {
+ if (is_null($formatter)) {
+ $formatter = new Horde_Log_Formatter_Simple();
+ }
+
+ $this->_scribe = $scribe;
+ $this->_formatter = $formatter;
+ }
+
+ /**
+ * Write a message to the log.
+ *
+ * @param array $event Log event
+ * @return bool Always True
+ */
+ public function write($event)
+ {
+ $category = isset($event['category']) ? $event['category'] : $this->_options['category'];
+
+ $message = $this->_formatter->format($event);
+ if (!$this->_options['addNewline']) {
+ $message = rtrim($message);
+ }
+
+ $this->_scribe->log($category, $message);
+
+ return true;
+ }
+}
<file name="Firebug.php" role="php" />
<file name="Mock.php" role="php" />
<file name="Null.php" role="php" />
+ <file name="Scribe.php" role="php" />
<file name="Stream.php" role="php" />
<file name="Syslog.php" role="php" />
</dir> <!-- /lib/Horde/Log/Handler -->
<channel>pear.horde.org</channel>
</package>
</required>
+ <optional>
+ <package>
+ <name>Scribe</name>
+ <channel>pear.horde.org</channel>
+ </package>
+ </optional>
</dependencies>
<phprelease>
<filelist>
<install name="lib/Horde/Log/Handler/Firebug.php" as="Horde/Log/Handler/Firebug.php" />
<install name="lib/Horde/Log/Handler/Mock.php" as="Horde/Log/Handler/Mock.php" />
<install name="lib/Horde/Log/Handler/Null.php" as="Horde/Log/Handler/Null.php" />
+ <install name="lib/Horde/Log/Handler/Scribe.php" as="Horde/Log/Handler/Scribe.php" />
<install name="lib/Horde/Log/Handler/Stream.php" as="Horde/Log/Handler/Stream.php" />
<install name="lib/Horde/Log/Handler/Syslog.php" as="Horde/Log/Handler/Syslog.php" />
<install name="lib/Horde/Log/Logger.php" as="Horde/Log/Logger.php" />