Permalink
Browse files

Added a ChromePhp logger.

  • Loading branch information...
1 parent fa03b37 commit d9a085488fa93e4754b137a8229fd9fcb569b959 @waltertamboer waltertamboer committed Aug 1, 2012
@@ -0,0 +1,51 @@
+<?php
+/**
+ * Zend Framework (http://framework.zend.com/)
+ *
+ * @link http://github.com/zendframework/zf2 for the canonical source repository
+ * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
+ * @license http://framework.zend.com/license/new-bsd New BSD License
+ * @package Zend_Log
+ */
+
+namespace Zend\Log\Formatter;
+
+/**
+ * @category Zend
+ * @package Zend_Log
+ * @subpackage Formatter
+ */
+class ChromePhp implements FormatterInterface
+{
+ /**
+ * Formats the given event data into a single line to be written by the writer.
+ *
+ * @param array $event The event data which should be formatted.
+ * @return string
+ */
+ public function format($event)
+ {
+ return $event['message'];
+ }
+
+ /**
+ * This method is implemented for FormatterInterface but not used.
+ *
+ * @return string
+ */
+ public function getDateTimeFormat()
+ {
+ return '';
+ }
+
+ /**
+ * This method is implemented for FormatterInterface but not used.
+ *
+ * @param string $dateTimeFormat
+ * @return FormatterInterface
+ */
+ public function setDateTimeFormat($dateTimeFormat)
+ {
+ return $this;
+ }
+}
@@ -0,0 +1,105 @@
+<?php
+/**
+ * Zend Framework (http://framework.zend.com/)
+ *
+ * @link http://github.com/zendframework/zf2 for the canonical source repository
+ * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
+ * @license http://framework.zend.com/license/new-bsd New BSD License
+ * @package Zend_Log
+ */
+
+namespace Zend\Log\Writer;
+
+use Zend\Log\Writer\ChromePhp\ChromePhpBridge;
+use Zend\Log\Writer\ChromePhp\ChromePhpInterface;
+use Zend\Log\Formatter\ChromePhp as ChromePhpFormatter;
+use Zend\Log\Logger;
+
+/**
+ * @category Zend
+ * @package Zend_Log
+ * @subpackage Writer
+ */
+class ChromePhp extends AbstractWriter
+{
+ /**
+ * The instance of ChromePhpInterface that is used to log messages to.
+ *
+ * @var ChromePhpInterface
+ */
+ protected $chromephp;
+
+ /**
+ * Initializes a new instance of this class.
+ *
+ * @param null|ChromePhpInterface $instance An instance of ChromePhpInterface
+ * that should be used for logging
+ */
+ public function __construct(ChromePhpInterface $instance = null)
+ {
+ $this->chromephp = $instance === null ? $this->getChromePhp() : $instance;
+ $this->formatter = new ChromePhpFormatter();
+ }
+
+ /**
+ * Write a message to the log.
+ *
+ * @param array $event event data
+ * @return void
+ */
+ protected function doWrite(array $event)
+ {
+ $line = $this->formatter->format($event);
+
+ switch ($event['priority']) {
+ case Logger::EMERG:
+ case Logger::ALERT:
+ case Logger::CRIT:
+ case Logger::ERR:
+ $this->chromephp->error($line);
+ break;
+ case Logger::WARN:
+ $this->chromephp->warn($line);
+ break;
+ case Logger::NOTICE:
+ case Logger::INFO:
+ $this->chromephp->info($line);
+ break;
+ case Logger::DEBUG:
+ $this->chromephp->trace($line);
+ break;
+ default:
+ $this->chromephp->log($line);
+ break;
+ }
+ }
+
+ /**
+ * Gets the ChromePhpInterface instance that is used for logging.
+ *
+ * @return ChromePhpInterface
+ */
+ public function getChromePhp()
+ {
+ // Remember: class names in strings are absolute; thus the class_exists
+ // here references the canonical name for the ChromePhp class
+ if (!$this->chromephp instanceof ChromePhpInterface
+ && class_exists('ChromePhp')
+ ) {
+ $this->setChromePhp(new ChromePhpBridge());
+ }
+ return $this->chromephp;
+ }
+
+ /**
+ * Sets the ChromePhpInterface instance that is used for logging.
+ *
+ * @param ChromePhpInterface $instance The instance to set.
+ * @return ChromePhp
+ */
+ public function setChromePhp(ChromePhpInterface $instance)
+ {
+ $this->chromephp = $instance;
+ return $this;
+ }
+}
@@ -0,0 +1,71 @@
+<?php
+/**
+ * Zend Framework (http://framework.zend.com/)
+ *
+ * @link http://github.com/zendframework/zf2 for the canonical source repository
+ * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
+ * @license http://framework.zend.com/license/new-bsd New BSD License
+ * @package Zend_Log
+ */
+
+namespace Zend\Log\Writer\ChromePhp;
+
+use ChromePhp;
+
+/**
+ * @category Zend
+ * @package Zend_Log
+ * @subpackage Writer
+ */
+class ChromePhpBridge implements ChromePhpInterface
+{
+ /**
+ * Log an error message
+ *
+ * @param string $line
+ */
+ public function error($line)
+ {
+ ChromePhp::error($line);
+ }
+
+ /**
+ * Log a warning
+ *
+ * @param string $line
+ */
+ public function warn($line)
+ {
+ ChromePhp::warn($line);
+ }
+
+ /**
+ * Log informational message
+ *
+ * @param string $line
+ */
+ public function info($line)
+ {
+ ChromePhp::info($line);
+ }
+
+ /**
+ * Log a trace
+ *
+ * @param string $line
+ */
+ public function trace($line)
+ {
+ ChromePhp::error($line);
+ }
+
+ /**
+ * Log a message
+ *
+ * @param string $line
+ */
+ public function log($line)
+ {
+ ChromePhp::log($line);
+ }
+}
@@ -0,0 +1,54 @@
+<?php
+/**
+ * Zend Framework (http://framework.zend.com/)
+ *
+ * @link http://github.com/zendframework/zf2 for the canonical source repository
+ * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
+ * @license http://framework.zend.com/license/new-bsd New BSD License
+ * @package Zend_Log
+ */
+
+namespace Zend\Log\Writer\ChromePhp;
+
+/**
+ * @category Zend
+ * @package Zend_Log
+ * @subpackage Writer
+ */
+interface ChromePhpInterface
+{
+ /**
+ * Log an error message
+ *
+ * @param string $line
+ */
+ public function error($line);
+
+ /**
+ * Log a warning
+ *
+ * @param string $line
+ */
+ public function warn($line);
+
+ /**
+ * Log informational message
+ *
+ * @param string $line
+ */
+ public function info($line);
+
+ /**
+ * Log a trace
+ *
+ * @param string $line
+ */
+ public function trace($line);
+
+ /**
+ * Log a message
+ *
+ * @param string $line
+ */
+ public function log($line);
+}

0 comments on commit d9a0854

Please sign in to comment.