public function errorAction() { $errors = $this->_getParam('error_handler'); switch ($errors->type) { case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_CONTROLLER: case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ACTION: // 404 error -- controller or action not found $this->getResponse()->setHttpResponseCode(404); break; default: // application error $this->getResponse()->setHttpResponseCode(500); break; } // log exception to database $db = Zend_Registry::get('db'); $columnMapping = array('priority' => 'priority', 'type' => 'type', 'message' => 'message', 'user' => 'user', 'ip' => 'ip', 'agent' => 'agent', 'url' => 'url'); $user = Zend_Auth::getInstance()->hasIdentity() ? Zend_Auth::getInstance()->getIdentity()->getEmail() : 'anonymous'; $writer = new Zend_Log_Writer_Db($db, 'Logs', $columnMapping); $logger = new Zend_Log($writer); $logger->setEventItem('user', $user); $logger->setEventItem('ip', $_SERVER['REMOTE_ADDR']); $logger->setEventItem('agent', $_SERVER['HTTP_USER_AGENT']); $logger->setEventItem('url', $this->view->url()); $logger->setEventItem('type', $errors->type); $logger->err($errors->exception); }
/** * Get the logger instance * * @return Zend_Log */ public function getLogger() { if (is_null($this->_oLogger)) { $this->_oLogger = Zend_Registry::get('log'); $this->_oLogger->setEventItem('file', get_class($this)); } return $this->_oLogger; }
public function errorAction() { /** * Check database connection */ try { $db = Zend_Registry::get('db'); $db->getConnection(); } catch (Zend_Db_Adapter_Exception $e) { // perhaps a failed login credential, or perhaps the RDBMS is not running $this->databaseError($e); } catch (Zend_Exception $e) { // perhaps factory() failed to load the specified Adapter class $this->databaseError($e); } /** * Normal error page */ $pageProxy = new SxCms_Page_Proxy(); $page = $pageProxy->getPageById(36); $this->view->page = $page; $this->view->lng = isset($_SESSION['System']['lng']) ? $_SESSION['System']['lng'] : $this->_getParam('lng', 'nl'); $this->_helper->layout->setLayout('full'); $this->view->errorpage = true; $this->view->glob_tmx = new Zend_Translate('tmx', APPLICATION_ROOT . '/application/var/locale/global.tmx', $this->_getParam('lng', 'nl')); $errors = $this->_getParam('error_handler'); switch ($errors->type) { case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_CONTROLLER: case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ACTION: // 404 error -- controller or action not found $this->getResponse()->setHttpResponseCode(404); $this->render('404'); break; default: // application error $this->getResponse()->setHttpResponseCode(500); break; } // log exception to database $db = Zend_Registry::get('db'); $columnMapping = array('priority' => 'priority', 'type' => 'type', 'message' => 'message', 'user' => 'user', 'ip' => 'ip', 'agent' => 'agent', 'url' => 'url'); $user = Zend_Auth::getInstance()->hasIdentity() ? Zend_Auth::getInstance()->getIdentity()->getEmail() : 'anonymous'; $writer = new Zend_Log_Writer_Db($db, 'Logs', $columnMapping); $logger = new Zend_Log($writer); $logger->setEventItem('user', $user); $logger->setEventItem('ip', $_SERVER['REMOTE_ADDR']); $logger->setEventItem('agent', $_SERVER['HTTP_USER_AGENT']); $logger->setEventItem('url', $this->view->url()); $logger->setEventItem('type', $errors->type); $logger->err($errors->exception); }
protected function _initLog() { $log = new Zend_Log(); $log->setEventItem('domain', 'error'); // Non-production if (APPLICATION_ENV !== 'production') { $log->addWriter(new Zend_Log_Writer_Firebug()); } // Get log config try { $log->addWriter(new Zend_Log_Writer_Stream(WEB_ROOT . '/temporary/log/main.log')); } catch (Exception $e) { // Check directory if (!@is_dir(WEB_ROOT . '/temporary/log') && @mkdir(WEB_ROOT . '/temporary/log', 0777, true)) { $log->addWriter(new Zend_Log_Writer_Stream(WEB_ROOT . '/temporary/log/main.log')); } else { // Silence ... if (APPLICATION_ENV !== 'production') { $log->log($e->__toString(), Zend_Log::CRIT); } else { // Make sure logging doesn't cause exceptions $log->addWriter(new Zend_Log_Writer_Null()); } } } // Save to registry Zend_Registry::set('Zend_Log', $log); return $log; }
public static function getLogger(Zend_Config $config = null) { $logger = new Zend_Log(); $hasWriters = false; if ($config !== null && $config->writers !== null) { foreach ($config->writers as $writerConfig) { $writer = self::getWriter($writerConfig); if ($writer !== null) { $logger->addWriter($writer); $hasWriters = true; } } } if (!$hasWriters) { $logger->addWriter(new Zend_Log_Writer_Null()); } // to turn off logging without making the logger throw exceptions if ($config !== null && $config->eventItems !== null) { foreach ($config->eventItems as $eventItemName => $eventItemClass) { $eventItemClass = (string) $eventItemClass; if (class_exists($eventItemClass)) { $logger->setEventItem($eventItemName, new $eventItemClass()); } } } return $logger; }
protected function saveLogBD($errors) { $config = new Zend_Config_Ini('application/configs/application.ini', APPLICATION_ENV); $params = array('host' => $config->resources->db->params->host, 'username' => $config->resources->db->params->username, 'password' => $config->resources->db->params->password, 'dbname' => "estatisticas", 'charset' => $config->resources->db->params->charset); $db = Zend_Db::factory('PDO_MYSQL', $params); $columnMapping = array('message' => 'message', 'file' => 'file', 'line' => 'line', 'url' => 'url', 'date' => 'date'); $writer = new Zend_Log_Writer_Db($db, 'erro_log', $columnMapping); $logger = new Zend_Log($writer); $exception = $errors->exception; $exception->getTraceAsString(); $logger->setEventItem('message', $exception->getMessage()); $logger->setEventItem('file', $errors->getFile()); $logger->setEventItem('line', $errors->getLine()); $logger->setEventItem('url', $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']); $logger->setEventItem('date', new Zend_Db_Expr('NOW()')); $logger->info("Erros"); }
protected function _initLog() { $options = $this->getOptions(); $sqs = $this->getResource('AmazonSqs'); $queue_name = $options['amazon']['sqs']['queues']['log']; $logger = new Zend_Log(); $writer = new JW_Log_Writer_AmazonSqs($sqs, $queue_name); $logger->addWriter($writer); $logger->setEventItem('serverHostname', $_SERVER['SERVER_NAME']); Zend_Registry::set('logger', $logger); return $logger; }
/** * Schreibt einen Log-Eintrag * * @param string $method Funktions- oder Methodenname * @param int $line Zeilennummer * @param string $message Meldung * @param mixed $data Zusaetzliche Informationen * @param int $priority Level * @param string $logid ID des Logeintrag */ protected function doLog($method, $line, $message, $data, $priority, $logid = '') { if ((int) $priority > (int) $this->level) { return; } $this->logger->setEventItem('data', isset($data) ? print_r($data, true) : null); $this->logger->setEventItem('method', $method); $this->logger->setEventItem('line', $line); $this->logger->setEventItem('logid', $logid); $this->logger->setEventItem('sessionId', session_id()); $this->logger->log($message, $priority); }
/** * @param string $websiteId * @param string $id * @param string $name * @param string $additionalinfo * @param integer $timestamp * @param string $userid * @param string $action * @param integer $priority */ protected function log($websiteId, $id, $name, $additionalinfo, $timestamp, $userlogin, $action, $priority = \Zend_Log::INFO) { if ((int) $priority > (int) $this->level) { return; } $this->logger->setEventItem('websiteid', $websiteId); $this->logger->setEventItem('id', $id); $this->logger->setEventItem('name', $name); $this->logger->setEventItem('additionalinfo', $additionalinfo); $this->logger->setEventItem('timestamp', $timestamp); $this->logger->setEventItem('userlogin', $userlogin); $this->logger->setEventItem('action', $action); $this->logger->log($action, $priority); }
public function init() { $this->getBootstrap()->bootstrap(array('db')); $tbl = 'tbl_ot_log'; $application = $this->getBootstrap()->getApplication(); $prefix = $application->getOption('tablePrefix'); if (!empty($prefix)) { $tbl = $prefix . $tbl; } // Setup logger if ($this->_useLog) { $adapter = Zend_Db_Table::getDefaultAdapter(); $writer = new Zend_Log_Writer_Db($adapter, $tbl); } else { $writer = new Zend_Log_Writer_Null(); } $logger = new Zend_Log($writer); $logger->addPriority('LOGIN', 8); $logger->setEventItem('sid', session_id()); $logger->setEventItem('timestamp', time()); $logger->setEventItem('request', str_replace(Zend_Controller_Front::getInstance()->getBaseUrl(), '', $_SERVER['REQUEST_URI'])); Zend_Registry::set('logger', $logger); }
/** * Construtor Padrão da Classe */ private function __construct() { $logger = new Zend_Log(); // Adicionar Escritor de Banco de Dados $mapper = array('ip' => 'address', 'info' => 'info', 'content' => 'message', 'created' => 'timestamp', 'idpeople' => 'user', 'priority' => 'priority', 'priorityname' => 'priorityName'); $table = new Blog_Model_DbTable_Message(); $adapter = $table->getAdapter(); $tableName = $table->info(Zend_Db_Table::NAME); $element = new Zend_Log_Writer_Db($adapter, $tableName, $mapper); $logger->addWriter($element); // Elemento Extra: Identificador do Usuário $user = null; $auth = Zend_Auth::getInstance(); if ($auth->hasIdentity()) { $user = $auth->getIdentity()->idpeople; } $logger->setEventItem('user', $user); // Elemento Extra: IP do Cliente $front = Zend_Controller_Front::getInstance(); $address = $front->getRequest()->getClientIp(); $logger->setEventItem('address', $address); $this->_setLogger($logger); }
/** * Initialisiert bei jedem Request das Zend_Log Objekt */ public function bootstrap() { $configLog = new Dragon_Application_Config('dragonx/log/log'); $logger = new Zend_Log(); foreach ($configLog->eventitems as $name => $value) { $logger->setEventItem($name, $value); } foreach ($configLog->writers as $writer) { $logger->addWriter($writer); } foreach ($configLog->filters as $filter) { $logger->addFilter($filter); } Zend_Registry::set('Zend_Log', $logger); }
/** * set logger */ protected function _setLog() { if (null === self::$_log) { self::$_log = new SP_Log(); self::$_log->setEventItem('pid', getmypid()); $format = '%timestamp% pid(%pid%) %priorityName% (%priority%): %message%' . PHP_EOL; $formatter = new Zend_Log_Formatter_Simple($format); $log_file = SP_APP_PATH . DIRECTORY_SEPARATOR . 'log/log.txt'; $writer_file = new Zend_Log_Writer_Stream($log_file); $writer_file->setFormatter($formatter); $writer_firebug = new Zend_Log_Writer_Firebug(); self::$_log->addWriter($writer_file); self::$_log->addWriter($writer_firebug); self::$_log->addFilter(new Zend_Log_Filter_Priority(Zend_Log::INFO)); } Zend_Registry::set('logger', self::$_log); }
public function testLogWritesAndOverwritesExtraFields() { $logger = new Zend_Log($mock = new Zend_Log_Writer_Mock()); $logger->setEventItem('foo', 42); $logger->setEventItem($field = 'bar', $value = 43); $logger->info('foo'); $this->assertEquals(1, count($mock->events)); $event = array_shift($mock->events); $this->assertTrue(array_key_exists($field, $event)); $this->assertEquals($value, $event[$field]); }
/** * Sends mass mailing. * Prepares data and tests the recipients list before sendig emails. * * @param int $releaseID The release of the the newsletter to send. * * @return array Contains data corresponding to the send result. */ public function sendMassMailingAction($releaseID = null) { $this->disableView(); if (!$releaseID) { $releaseID = $_REQUEST['releaseID']; } // $releaseID = $this->view->params['releaseID']; // 1- Get all newsletter to send $dateTimeNow = date('Y-m-d H:i:s'); $newsletterSelect = new NewsletterReleases(); $select = $newsletterSelect->select()->setIntegrityCheck(false); $select->from('Newsletter_Releases')->join('Languages', 'L_ID = NR_LanguageID')->join('CategoriesIndex', 'CI_CategoryID = NR_CategoryID')->join('Newsletter_Models_Index', 'NMI_NewsletterModelID = NR_ModelID')->join('Newsletter_Models', 'NM_ID = NMI_NewsletterModelID')->where('CI_LanguageID = NR_LanguageID')->where('NMI_LanguageID = NR_LanguageID')->where('NR_Status <> 1')->where('NR_ID = ?', $releaseID); $newsletterData = $newsletterSelect->fetchAll($select); foreach ($newsletterData as $release) { $listSent = array(); $listDest = array(); $listIds = array(); $mailLog = array(); $date = new Zend_Date($release['NR_Date'], null, Zend_Registry::get('languageSuffix') == 'fr' ? 'fr_CA' : 'en_CA'); $date_string = Cible_FunctionsGeneral::dateToString($date, Cible_FunctionsGeneral::DATE_LONG_NO_DAY, '.'); $date_string_url = Cible_FunctionsGeneral::dateToString($date, Cible_FunctionsGeneral::DATE_SQL, '-'); $releaseLanguage = $release['NR_LanguageID']; $this->view->assign('languageRelease', $releaseLanguage); $filteredData = $this->_countFilterMembers($release['NR_CollectionFiltersID'], $releaseLanguage); $members = $filteredData['members']; $selection = $filteredData['selection']; $dateTimeStart = date('Y-m-d H:i:s'); $member_count = 0; $stats = array('action' => 'set', 'sentTo' => 0, 'targetedTotal' => 0); if ($release['NR_Status'] == 0 || $release['NR_Status'] == 3) { //Send to all recipient even if they have already received it $member_count = count($members); } elseif ($release['NR_Status'] == 2) { $member_count = count($members); $stats['action'] = 'increment'; //Send to recipient who have not already received it $alreadyMembersRecievedSelect = new NewsletterReleasesMembers(); $select = $alreadyMembersRecievedSelect->select()->where('NRM_ReleaseID = ?', $release['NR_ID']); $alreadyMembersRecievedData = $alreadyMembersRecievedSelect->fetchAll($select); $already_received_count = count($alreadyMembersRecievedData); $membersTmp = array(); for ($i = 0; $i < $member_count; $i++) { $received = "false"; for ($j = 0; $j < $already_received_count; $j++) { if ($members[$i]['GP_MemberID'] == $alreadyMembersRecievedData[$j]['NRM_MemberID']) { $received = "true"; } } if ($received == "false") { array_push($membersTmp, $members[$i]); } } $members = $membersTmp; $member_count = count($members); } $stats['targetedTotal'] = $member_count; if (!empty($members) && $member_count > 0) { $newsletterArticlesSelect = new NewsletterArticles(); $select = $newsletterArticlesSelect->select(); $select->where('NA_ReleaseID = ?', $release['NR_ID'])->order('NA_ZoneID')->order('NA_PositionID'); $newsletterArticlesData = $newsletterArticlesSelect->fetchAll($select); $this->view->articles = $newsletterArticlesData->toArray(); $registry = Zend_Registry::getInstance()->set('format', 'email'); $config = Zend_Registry::get('config')->toArray(); $nbMax = $config['massMailing']['packof']; $sleep = $config['massMailing']['sleep']; $server = $config['massMailing']['server']; $i = 0; set_time_limit(0); $emailValidator = new Zend_Validate_EmailAddress(); $sentToCount = 0; $failedEmailAddress = array(); for ($k = 0; $k < $member_count; $k++) { try { if ($i == $nbMax) { $protocol->quit(); $protocol->disconnect(); sleep($sleep); $i = 0; } if ($i == 0) { $transport = new Zend_Mail_Transport_Smtp(); $protocol = new Zend_Mail_Protocol_Smtp($server); $protocol->connect(); $protocol->helo($server); $transport->setConnection($protocol); } $protocol->rset(); if ($emailValidator->isValid($members[$k]['GP_Email'])) { $date = new Zend_Date($release['NR_Date'], null, Zend_Registry::get('languageSuffix') == 'fr' ? 'fr_CA' : 'en_CA'); $date_string = Cible_FunctionsGeneral::dateToString($date, Cible_FunctionsGeneral::DATE_LONG_NO_DAY, '.'); $date_string_url = Cible_FunctionsGeneral::dateToString($date, Cible_FunctionsGeneral::DATE_SQL, '-'); $newsletterCategoryID = $release['NR_CategoryID']; $this->view->assign('unsubscribeLink', "/" . Cible_FunctionsCategories::getPagePerCategoryView($newsletterCategoryID, 'unsubscribe', 8)); $this->view->assign('subscribeLink', "/" . Cible_FunctionsCategories::getPagePerCategoryView($newsletterCategoryID, 'subscribe', 8, $releaseLanguage)); $this->view->assign('archiveLink', "/" . Cible_FunctionsCategories::getPagePerCategoryView($newsletterCategoryID, 'list_archives', 8, $releaseLanguage)); //$this->view->assign('details_release', "/" . Cible_FunctionsCategories::getPagePerCategoryView($newsletterCategoryID, 'details_release', 8) . "/ID/" . $release['NR_ID']); $this->view->assign('details_release', "/" . Cible_FunctionsCategories::getPagePerCategoryView($newsletterCategoryID, 'details_release', 8, $releaseLanguage) . "/" . $date_string_url . "/" . $release['NR_Title']); $this->view->assign('details_page', Cible_FunctionsCategories::getPagePerCategoryView($newsletterCategoryID, 'details_article', 8)); $this->view->assign('isOnline', $release['NR_Online']); $this->view->assign('newsletterID', $release['NR_ID']); $this->view->assign('memberId', $members[$k]['GP_MemberID']); $this->view->assign('moduleId', $this->_moduleID); $this->view->assign('dateString', $date_string); $this->view->assign('parutionDate', $date_string_url); $bodyText = $this->view->render($release['NM_DirectoryEmail']); $salutationsSelect = new Salutations(); $select = $salutationsSelect->select()->setIntegrityCheck(false); $salutationId = $members[$k]['GP_Salutation']; if (is_null($salutationId)) { $salutationId = 0; } $select->from('Salutations')->join('Static_Texts', 'ST_Identifier = S_StaticTitle')->where('ST_LangID = ?', Zend_Registry::get("languageID"))->where('S_ID = ?', $salutationId); $salutationsData = $salutationsSelect->fetchRow($select); $bodyText = str_replace('#prenom#', $members[$k]['GP_FirstName'], $bodyText); $bodyText = str_replace('#nom#', $members[$k]['GP_LastName'], $bodyText); $bodyText = str_replace('#courtoisie#', $salutationsData['ST_Value'], $bodyText); //$newsletterData['NR_AfficherTitre'] = $form->getValue('NR_AfficherTitre'); $newsletterAfficherTitre = $release['NR_AfficherTitre']; $newsletterTextIntro = $release['NR_TextIntro']; $newsletterTextIntro = str_replace('##prenom##', $members[$k]['GP_FirstName'], $newsletterTextIntro); $newsletterTextIntro = str_replace('##nom##', $members[$k]['GP_LastName'], $newsletterTextIntro); $newsletterTextIntro = str_replace('##salutation##', $salutationsData['ST_Value'], $newsletterTextIntro); $this->view->intro = $newsletterTextIntro; $this->view->newsletterAfficherTitre = $newsletterAfficherTitre; $mail = new Zend_Mail(); $mail->setBodyHtml($bodyText); $mail->setFrom($release['NM_FromEmail'], $release['NMI_FromName']); $mail->addTo($members[$k]['GP_Email']); $mail->setSubject($release['NR_Title']); if (!$mail->send()) { array_push($failedEmailAddress, array('fname' => $members[$k]['GP_FirstName'], 'lname' => $members[$k]['GP_LastName'], 'email' => $members[$k]['GP_Email'])); } $sentToCount++; $releaseMember = new NewsletterReleasesMembers(); $releaseMemberData = $releaseMember->createRow(); $releaseMemberData['NRM_ReleaseID'] = $release['NR_ID']; $releaseMemberData['NRM_MemberID'] = $members[$k]['GP_MemberID']; $releaseMemberData['NRM_DateTimeReceived'] = date('Y-m-d H:i:s'); $insert = $releaseMemberData->save(); $i++; } else { array_push($failedEmailAddress, array('fname' => $members[$k]['GP_FirstName'], 'lname' => $members[$k]['GP_LastName'], 'email' => $members[$k]['GP_Email'])); } } catch (Exception $exc) { $index = $releaseID . '-'; $index .= $k + 1 . '-'; $index .= $members[$k]['GP_MemberID']; $mailLog[$index]['message'] = $exc->getCode() . '-' . $exc->getFile() . '-' . $exc->getLine(); $mailLog[$index]['log'] = $protocol->getResponse(); $columnsMap = array('NEL_IdIndex' => 'NEL_IdIndex', 'NEL_CodeFileLine' => 'NEL_CodeFileLine', 'NEL_Response' => 'NEL_Response', 'NEL_Timestamp' => 'timestamp'); $writer = new Zend_Log_Writer_Db($this->_db, 'Newsletter_ErrorsLog', $columnsMap); $oZLog = new Zend_Log($writer); $oZLog->setEventItem('NEL_IdIndex', $index); $oZLog->setEventItem('NEL_CodeFileLine', $mailLog[$index]['message']); $oZLog->setEventItem('NEL_Response', $mailLog[$index]['log'][0]); $oZLog->log('errors', 4); } } $protocol->quit(); $protocol->disconnect(); } else { echo Zend_Json::encode(array('sentTo' => '0', 'targetedTotal' => '0', 'failedEmail' => array(), 'select' => $selection)); break; } $stats['sentTo'] = $sentToCount; $dateTimeEnd = date('Y-m-d H:i:s'); $release['NR_MailingDateTimeStart'] = $dateTimeStart; $release['NR_MailingDateTimeEnd'] = $dateTimeEnd; $release['NR_SendTo'] = $stats['action'] == 'set' ? $stats['sentTo'] : $release['NR_SendTo'] + $stats['sentTo']; $release['NR_TargetedTotal'] = $stats['action'] == 'set' ? $stats['targetedTotal'] : $release['NR_TargetedTotal'] + $stats['targetedTotal']; $release['NR_Status'] = 1; $release->save(); if (count($failedEmailAddress) > 0) { $this->_recordEmails($failedEmailAddress, $releaseID); } $this->_stats = array('invalidEmails' => count($failedEmailAddress), 'errors' => count($mailLog), 'totalToSend' => $stats['targetedTotal'], 'totalSent' => $stats['sentTo']); if ($this->_isXmlHttpRequest) { array_push($listSent, $release['NR_Title']); array_push($listIds, $release['NR_ID']); array_push($listDest, $release['NR_AdminEmail']); $data = array('list' => $listSent, 'dest' => $listDest, 'ids' => $listIds); $this->_adminNotification($data); $this->_logSending($data); } echo Zend_Json::encode(array('sentTo' => $stats['sentTo'], 'targetedTotal' => $stats['targetedTotal'], 'failedEmail' => $failedEmailAddress, 'select' => $selection)); exit; } // If all the newsletter have a status = 1, we don't pass through the foreach // So redirect the action to the newsletter // echo(Zend_Json::encode(array('sentTo' => '0', 'targetedTotal' => '0', 'failedEmail' => array(), 'select' => ''))); // exit; }
/** * Get our logger * * @return Zend_Log */ public function getLog() { if (null === $this->_log) { $logAdapter = Engine_Api::_()->getDbtable('settings', 'core')->getSetting('core.log.adapter', 'file'); $log = new Zend_Log(); $log->setEventItem('domain', 'tasks'); try { switch ($logAdapter) { case 'file': default: $log->addWriter(new Zend_Log_Writer_Stream(APPLICATION_PATH . '/temporary/log/tasks.log')); break; case 'database': $log->addWriter(new Zend_Log_Writer_Db($this->getAdapter(), 'engine4_core_log')); break; case 'none': $log->addWriter(new Zend_Log_Writer_Null()); break; } } catch (Exception $e) { $log->addWriter(new Zend_Log_Writer_Null()); } $this->_log = $log; } return $this->_log; }
/** * The primary log function that will take an incoming message and specified paramter and log in the * appropriate location and format * * @param int $level - Follow common BSD error levels * @param string $package - A way to group log messages * @param string $message - The actual message to log * @param string $fileName - An optional specific file name where the message should be logged * @param string $string - An optional list of the Application stack at the time of error * @return boolean -TRUE on success otherwise FALSE */ public function logError($level = 7, $package, $message, $fileName = NULL, $backTrace = '') { //Adapt PHP Errors switch ($level) { case 8: // E_NOTICE // E_NOTICE case 1024: // E_USER_NOTICE $level = 4; break; case 2048: //E_STRICT //E_STRICT case 8192: //E_DEPRICIATED //E_DEPRICIATED case 16384: //E_DEPRICIATED $level = 5; break; case 2: //E_WARNING //E_WARNING case 512: //E_USER_WARNING $level = 3; break; case 256: $level = 2; break; default: $level = 2; } if ($this->_level == FALSE) { return true; } //Get the file path $this->_level = $level; $path = $this->_getPath($fileName); if (!is_writable($path)) { return false; } $this->prepFile($path); //Create the log writer object $writer = new \Zend_Log_Writer_Stream($path); $writer->setFormatter($this->_formatter); //Instantiate logging object $logger = new \Zend_Log($writer); //Filter log entries to those allowed by configuration $filter = new \Zend_Log_Filter_Priority($this->_level); $logger->addFilter($filter); //Set additional information about the class and function that called the log // Add custom elements to default log package $logger->setEventItem('back_trace', $backTrace); $logger->setEventItem('package', $package); $logger->setEventItem('date', date("m/d/Y")); $logger->setEventItem('time', date("H:i:s")); //Write Log Entry $logger->log($message, $level); $this->closeFile($path); return TRUE; }
public function setColEventDate($value) { $this->log->setEventItem('eventdate', $value); }
$arsConfig = new Zend_Config_Ini(APPLICATION_PATH . '/modules/ars/config/ars.ini', APPLICATION_ENVIRONMENT); if (file_exists(LOCAL_CONFIG_FILE) && is_readable(LOCAL_CONFIG_FILE)) { $localConfig = new Zend_Config_Ini(LOCAL_CONFIG_FILE, APPLICATION_ENVIRONMENT); $configuration->merge($localConfig); } // LOGGER $logfile = APPLICATION_PATH . "/" . $configuration->log->path; if (is_file($logfile) && !is_writeable($logfile)) { die("Unable to write to log file " . $logfile); } $writer = new Zend_Log_Writer_Stream($logfile); $writer->setFormatter(new Zend_Log_Formatter_Simple('%timestamp% %priorityName% %request% %remote%: %message%' . "\n")); $filter = new Zend_Log_Filter_Priority((int) $configuration->log->level); $writer->addFilter($filter); $logger = new Zend_Log($writer); $logger->setEventItem('pid', getmypid()); $logger->setEventItem('request', $_SERVER['REQUEST_URI']); $logger->setEventItem('remote', $_SERVER['REMOTE_ADDR']); // TRANSLATIONS $locale = new Zend_Locale(); Zend_Registry::set('Zend_Locale', $locale); // default language when requested language is not available $defaultlanguage = 'en'; define('DEFAULT_LANGUAGE', 'en'); $translate = new Zend_Translate('csv', APPLICATION_PATH . '/languages/', null, array('scan' => Zend_Translate::LOCALE_FILENAME)); $translate->setOptions(array('log' => $logger, 'logUntranslated' => true)); if (!$translate->isAvailable($locale->getLanguage())) { // not available languages are rerouted to another language $translate->setLocale(DEFAULT_LANGUAGE); } // REGISTRY - setup the application registry
public function displayAction() { // set filters and validators for GET input $filters = array('id' => array('HtmlEntities', 'StripTags', 'StringTrim')); $validators = array('id' => array('NotEmpty', 'Int')); // test if input is valid // retrieve requested record // attach to view $input = new Zend_Filter_Input($filters, $validators); $input->setData($this->getRequest()->getParams()); if ($input->isValid()) { $q = Doctrine_Query::create()->from('Webteam_Model_Video i')->where('i.VideoID = ?', $input->id); $result = $q->fetchArray(); if (count($result) == 1) { $this->view->item = $result[0]; // initialize logging engine $logger = new Zend_Log(); // add Doctrine writer //values on the right represent database attritubtes $columnMap = array('message' => 'LogMessage', 'user' => 'UserName', 'videoid' => 'VideoID'); $dbWriter = new Webteam_Log_Writer_Doctrine('Webteam_Model_Log', $columnMap); $logger->addWriter($dbWriter); // add additional data to log message $auth = Zend_Auth::getInstance(); $identity = $auth->getIdentity(); $user = $identity['UserName']; $logger->setEventItem('user', $user); $logger->setEventItem('videoid', $result[0]['VideoID']); // write log message $logger->log('user trace', Zend_Log::INFO); } else { throw new Zend_Controller_Action_Exception('Page not found', 404); } } else { throw new Zend_Controller_Action_Exception('Invalid input'); } }
/** * get the Zend_Log object * @return Zend_Log */ public function getLog() { $this->log->setEventItem('pid', posix_getpid()); $this->log->setEventItem('syslog_time', date('Y-m-d H:i:s')); return $this->log; }
#!/usr/bin/php <?php require_once '../application/bootstrap.php'; //TODO MP3 ID3 Tagging //TODO $init = new Initializer(isset($argv[1]) ? $argv[1] : 'production'); $init->initDb(); $init->initApp(); $config = $init->getConfig(); $log = new Zend_Log(); $logwriter = new Zend_Log_Writer_Stream('ingestion.log'); $logwriter->setFormatter(new Zend_Log_Formatter_Simple('%timestamp% %priorityName% (%priority%): %process% [%track%] %message%' . PHP_EOL)); $log->addWriter($logwriter); $log->setEventItem('process', str_pad(rand(0, 999), 3, '0')); define('WORKDIR', $config->injestion->workDir); $s3 = new S3($config->aws->accessKey, $config->aws->secretKey); //------------------------------------ $log->log('-- begin processing tracks --', Zend_Log::INFO); $table = new Doctrine_Table('Track', Doctrine_Manager::connection(), true); while ($track = $table->findOneByEncodingstatus('UPLOADED')) { $log->setEventItem('track', $track->id); $track->encodingStatus = 'PROCESSING'; $track->save(); $log->log('- processing track', Zend_Log::INFO); // Make sure track has an original file id if (intval($track->originalFileId) == 0) { $track->encodingStatus = 'ERROR'; $track->save(); $log->log('error: no source file to process', Zend_Log::ERR); continue; }
protected function _initLog() { $log = new Zend_Log(); $log->setEventItem('domain', 'error'); // Non-production if (APPLICATION_ENV !== 'production') { $log->addWriter(new Zend_Log_Writer_Firebug()); } // Get log config $db = Engine_Db_Table::getDefaultAdapter(); $logAdapter = $db->select()->from('engine4_core_settings', 'value')->where('`name` = ?', 'core.log.adapter')->query()->fetchColumn(); // Set up log switch ($logAdapter) { case 'database': try { $log->addWriter(new Zend_Log_Writer_Db($db, 'engine4_core_log')); } catch (Exception $e) { // Make sure logging doesn't cause exceptions $log->addWriter(new Zend_Log_Writer_Null()); } break; default: case 'file': try { $log->addWriter(new Zend_Log_Writer_Stream(APPLICATION_PATH . '/temporary/log/main.log')); } catch (Exception $e) { // Check directory if (!@is_dir(APPLICATION_PATH . '/temporary/log') && @mkdir(APPLICATION_PATH . '/temporary/log', 0777, true)) { $log->addWriter(new Zend_Log_Writer_Stream(APPLICATION_PATH . '/temporary/log/main.log')); } else { // Silence ... if (APPLICATION_ENV !== 'production') { $log->log($e->__toString(), Zend_Log::CRIT); } else { // Make sure logging doesn't cause exceptions $log->addWriter(new Zend_Log_Writer_Null()); } } } break; case 'none': $log->addWriter(new Zend_Log_Writer_Null()); break; } // Save to registry Zend_Registry::set('Zend_Log', $log); // Register error handlers Engine_Api::registerErrorHandlers(); if ('production' != APPLICATION_ENV) { Engine_Exception::setLog($log); } return $log; }
require_once 'push_handler/OpenZisPushHandler.php'; $ZSN = new Zend_Session_Namespace('openzisadmin'); $config = new Zend_Config_Ini('../config.ini', 'zit_config'); $tz = isset($config->application->root->date_timezone) ? $config->application->root->date_timezone : 'America/New_York'; date_default_timezone_set($tz); define('CACHE', $config->application->root->directory . "/tmp"); define('NUMMESSAGES', $config->interface->message->display); $frontendOptions = array('automatic_serialization' => true); $backendOptions = array('cache_dir' => CACHE); $cache = Zend_Cache::factory('Core', 'File', $frontendOptions, $backendOptions); $logger = new Zend_Log(); $writer = new Zend_Log_Writer_Stream($config->application->root->directory . "/logs/recordshelf-log.xml"); $formater = new Zend_Log_Formatter_Xml(); $writer->setFormatter($formater); $logger->addWriter($writer); $logger->setEventItem('timestamp', date('D, j M Y H:i:s', time())); Zend_Registry::set('logger', $logger); Zend_Registry::set('log', $config->application->root->directory . '/logs/recordshelf-log.xml'); try { $frontController = Zend_Controller_Front::getInstance(); $frontController->setControllerDirectory('../ADMIN_APPLICATION/controllers'); if ($config->code->level == 1) { $frontController->throwExceptions(false); ini_set('error_reporting', 0); Zend_Db_Table_Abstract::setDefaultMetadataCache($cache); } elseif ($config->code->level == 2) { $frontController->throwExceptions(true); ini_set('error_reporting', E_ERROR); } elseif ($config->code->level == 3) { $frontController->throwExceptions(true); ini_set('error_reporting', E_ERROR & ~E_STRICT);