protected function _initLogger() { $logger = $this->bootstrapLog()->getResource('Log'); /*if (! $this->hasPluginResource ( 'Log' )) { return false; }*/ switch (strtolower(APPLICATION_ENV)) { case 'production': $writer = new Zend_Log_Writer_Firebug(); $filter = new Zend_Log_Filter_Priority(5, '>='); $writer->addFilter($filter); // Uncomment and alter following line if you want to get more then message. //$writer->setPriorityStyle(Zend_Log::WARN, 'TRACE'); $logger->addWriter($writer); break; case 'staging': //Not considered yet. break; case 'testing': //Not considered yet. break; case 'development': $writer = new Zend_Log_Writer_Firebug(); $filter = new Zend_Log_Filter_Priority(2, '>='); $writer->addFilter($filter); // Uncomment and alter following line if you want to get more then message. //$writer->setPriorityStyle(Zend_Log::WARN, 'TRACE'); $logger->addWriter($writer); break; default: throw new Zend_Exception('Unknown <b>Application Environment</b> to create log writer in bootstrap.', Zend_Log::WARN); } // Now set logger globally in application. Zend_Registry::set("logger", $logger); }
/** * get Logger * * @return OSS_Log */ public function getLogger() { if (null === $this->_logger) { // Get Doctrine configuration options from the application.ini file $options = $this->getOptions(); $logger = new OSS_Log(); if (isset($options['enabled']) && $options['enabled']) { foreach ($options['writers'] as $writer => $writerOptions) { switch ($writer) { case 'stream': if (isset($writerOptions['mode']) && ($writerOptions['mode'] = 'single')) { $log_path = $writerOptions['path']; $log_file = $log_path . DIRECTORY_SEPARATOR . (isset($writerOptions['logname']) ? $writerOptions['logname'] : 'log.log'); } else { $log_path = $writerOptions['path'] . DIRECTORY_SEPARATOR . date('Y') . DIRECTORY_SEPARATOR . date('m'); $log_file = $log_path . DIRECTORY_SEPARATOR . date('Ymd') . '.log'; } if (file_exists($log_path) == false) { mkdir($log_path, 0755, true); @chmod($log_path, 0755); @chown($log_path, $writerOptions['owner']); @chgrp($log_path, $writerOptions['group']); } if (file_exists($log_file) == false) { touch($log_file); @chmod($log_file, 0777); @chown($log_file, $writerOptions['owner']); @chgrp($log_file, $writerOptions['group']); } $streamWriter = new Zend_Log_Writer_Stream($log_file); $streamWriter->setFormatter(new Zend_Log_Formatter_Simple('%timestamp% %priorityName% (%priority%) ' . (isset($_SERVER['REMOTE_ADDR']) == true ? "[{$_SERVER['REMOTE_ADDR']}]" : "") . ': %message%' . PHP_EOL)); $logger->addWriter($streamWriter); if (isset($writerOptions['level'])) { $logger->addFilter((int) $writerOptions['level']); } break; case 'email': $mail = new Zend_Mail(); $mail->setFrom($writerOptions['from'])->addTo($writerOptions['to']); $mailWriter = new Zend_Log_Writer_Mail($mail); // Set subject text for use; summary of number of errors is appended to the // subject line before sending the message. $mailWriter->setSubjectPrependText("[{$writerOptions['prefix']}]"); // Only email entries with level requested and higher. $mailWriter->addFilter((int) $writerOptions['level']); $logger->addWriter($mailWriter); break; case 'firebug': if ($writerOptions['enabled']) { $firebugWriter = new Zend_Log_Writer_Firebug(); $firebugWriter->addFilter((int) $writerOptions['level']); $logger->addWriter($firebugWriter); } break; default: try { $logger->log("Unknown log writer: {$writer}", Zend_Log::WARN); } catch (Zend_Log_Exception $e) { die("Unknown log writer [{$writer}] during application bootstrap"); } break; } } } else { $logger->addWriter(new Zend_Log_Writer_Null()); } try { $logger->debug('Logger instantiated', Zend_Log::INFO); } catch (Zend_Log_Exception $e) { die("Unknown log writer [{$writer}] during application bootstrap"); } $this->_logger = $logger; } return $this->_logger; }