/** * 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()); } }
/** * 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')); }