Add a handler. A handler is responsible for taking a log
message and writing it out to storage.
public addHandler ( Horde_Log_Handler_Base $handler ) | ||
$handler | Horde_Log_Handler_Base | Handler to add. |
/** * Constructor. * * @param Horde_Kolab_Storage_Data $data The queriable data. * @param array $params Additional parameters. * - factory: (Horde_Kolab_Storage_Factory) The factory object. * */ public function __construct(Horde_Kolab_Storage_Data $data, $params) { $this->_data = $data; $this->_history = $params['factory']->createHistory($data->getAuth()); $this->_logger = new Horde_Log_Logger(); $this->_logger->addHandler(new Horde_Log_Handler_Mock()); $this->_factory = $params['factory']; }
public function testaddHandlerAddsMultipleHandlers() { $logger = new Horde_Log_Logger(); // create handlers for two separate streams of temporary memory $log1 = fopen('php://memory', 'a'); $handler1 = new Horde_Log_Handler_Stream($log1); $log2 = fopen('php://memory', 'a'); $handler2 = new Horde_Log_Handler_Stream($log2); // add the handlers $logger->addHandler($handler1); $logger->addHandler($handler2); // log to both handlers $logger->log($message = 'message-sent-to-both-logs', Horde_Log::INFO); // verify both handlers were called by the logger rewind($log1); $this->assertContains($message, stream_get_contents($log1)); rewind($log2); $this->assertContains($message, stream_get_contents($log2)); // prove the two memory streams are different // and both handlers were indeed called fwrite($log1, 'foo'); $this->assertNotEquals(ftell($log1), ftell($log2)); }
/** * Return the logger. * * @return Horde_Log_Logger The logger. */ public function createLogger() { $logger = new Horde_Log_Logger(); $configuration = $this->_injector->getInstance('Horde_Kolab_FreeBusy_Configuration'); $logger_params = isset($configuration['logger']) ? $configuration['logger'] : array(); if (empty($params)) { $handlers = array('Horde_Log_Handler_Null' => array()); } else { $handlers = $logger_params['logger']; } foreach ($handlers as $name => $params) { if (!empty($params['params'])) { /** * We need to pass parameters to the constructor so use * reflection. */ $reflectionObj = new ReflectionClass($name); $handler = $reflectionObj->newInstanceArgs($params['params']); } else { $handler = new $name(); } if (!empty($params['options'])) { foreach ($params['options'] as $key => $value) { $handler->setOption($key, $value); } } $logger->addHandler($handler); } return $logger; }
/** * Prepare the log handler for the given environment. * * @param string $environment The name of the environment. * * @return NULL */ public function prepareLogger($environment) { $logger = new Horde_Log_Logger(); $handler = new Horde_Log_Handler_Mock(); $logger->addHandler($handler); $this->world['injector'][$environment]->setInstance('Horde_Log_Logger', $logger); }