Exemplo n.º 1
0
 /**
  * Set configuration
  *
  * @param \Zend\Config\Config $config VuFind configuration
  *
  * @return void
  */
 public function setConfig($config)
 {
     // DEBUGGER
     if (!$config->System->debug == false) {
         $writer = new Writer\Stream('php://output');
         $formatter = new \Zend\Log\Formatter\Simple('<pre>%timestamp% %priorityName%: %message%</pre>' . PHP_EOL);
         $writer->setFormatter($formatter);
         $this->addWriters($writer, 'debug-' . (is_int($config->System->debug) ? $config->System->debug : '5'));
     }
     // Activate database logging, if applicable:
     if (isset($config->Logging->database)) {
         $parts = explode(':', $config->Logging->database);
         $table_name = $parts[0];
         $error_types = isset($parts[1]) ? $parts[1] : '';
         $columnMapping = ['priority' => 'priority', 'message' => 'message', 'logtime' => 'timestamp', 'ident' => 'ident'];
         // Make Writers
         $filters = explode(',', $error_types);
         $writer = new Writer\Db($this->getServiceLocator()->get('VuFind\\DbAdapter'), $table_name, $columnMapping);
         $this->addWriters($writer, $filters);
     }
     // Activate file logging, if applicable:
     if (isset($config->Logging->file)) {
         $parts = explode(':', $config->Logging->file);
         $file = $parts[0];
         $error_types = isset($parts[1]) ? $parts[1] : '';
         // Make Writers
         $filters = explode(',', $error_types);
         $writer = new Writer\Stream($file);
         $this->addWriters($writer, $filters);
     }
     // Activate email logging, if applicable:
     if (isset($config->Logging->email)) {
         // Set up the logger's mailer to behave consistently with VuFind's
         // general mailer:
         $parts = explode(':', $config->Logging->email);
         $email = $parts[0];
         $error_types = isset($parts[1]) ? $parts[1] : '';
         // use smtp
         $mailer = $this->getServiceLocator()->get('VuFind\\Mailer');
         $msg = $mailer->getNewMessage()->addFrom($config->Site->email)->addTo($email)->setSubject('VuFind Log Message');
         // Make Writers
         $filters = explode(',', $error_types);
         $writer = new Writer\Mail($msg, $mailer->getTransport());
         $this->addWriters($writer, $filters);
     }
     // Null (no-op) writer to avoid errors
     if (count($this->writers) == 0) {
         $nullWriter = 'Zend\\Log\\Writer\\Noop';
         $this->addWriter(new $nullWriter());
     }
 }
Exemplo n.º 2
0
 /**
  * Add the standard debug stream writer.
  *
  * @param bool|int $debug Debug mode/level
  *
  * @return void
  */
 public function addDebugWriter($debug)
 {
     // Only add debug writer ONCE!
     static $hasDebugWriter = false;
     if ($hasDebugWriter) {
         return;
     }
     $hasDebugWriter = true;
     $writer = new Writer\Stream('php://output');
     $formatter = new \Zend\Log\Formatter\Simple('<pre>%timestamp% %priorityName%: %message%</pre>' . PHP_EOL);
     $writer->setFormatter($formatter);
     $this->addWriters($writer, 'debug-' . (is_int($debug) ? $debug : '5'));
 }