/** * Adds a log record. * * @param integer $level The logging level * @param string $message The log message * @param array $context The log context * * @throws LoggerException * @return Boolean Whether the record has been processed */ protected function addRecord($level, $message, array $context = array()) { if ($this->handlers->count() < 1) { throw new LoggerException('To log a record you must add at least one HandlerAbstract object to handle the messages.'); } $record = new Record(); $record->setLoggerName($this->name); $record->setMessage((string) $message); $record->setContext($context); $record->setLevel($level); $record->setDatetime($this->datetime("now")); // check if any handler will handle this message $canHandle = false; foreach ($this->handlers as $handler) { if ($handler->canHandle($record)) { $canHandle = true; break; } } if (!$canHandle) { return false; } /* @var $handler Webiny\HandlerAbstract */ foreach ($this->handlers as $handler) { if ($handler->canHandle($record)) { $bubble = $handler->process(clone $record); if (!$bubble) { break; } } } return true; }