*/ class Mage_Log_Model_Cron extends Mage_Core_Model_Abstract { const XML_PATH_EMAIL_LOG_CLEAN_TEMPLATE = 'system/log/error_email_template'; const XML_PATH_EMAIL_LOG_CLEAN_IDENTITY = 'system/log/error_email_identity'; const XML_PATH_EMAIL_LOG_CLEAN_RECIPIENT = 'system/log/error_email'; const XML_PATH_LOG_CLEAN_ENABLED = 'system/log/enabled'; /** * Error messages * * @var array */ protected $_errors = array(); /** * Send Log Clean Warnings * * @return Mage_Log_Model_Cron */ protected function _sendLogCleanEmail() { if (!$this->_errors) { return $this; } if (!Mage::getStoreConfig(self::XML_PATH_EMAIL_LOG_CLEAN_RECIPIENT)) { return $this; } $translate = Mage::getSingleton('core/translate'); /* @var $translate Mage_Core_Model_Translate */ $translate->setTranslateInline(false); $emailTemplate = Mage::getModel('core/email_template'); /* @var $emailTemplate Mage_Core_Model_Email_Template */ $emailTemplate->setDesignConfig(array('area' => 'backend')) ->sendTransactional( Mage::getStoreConfig(self::XML_PATH_EMAIL_LOG_CLEAN_TEMPLATE), Mage::getStoreConfig(self::XML_PATH_EMAIL_LOG_CLEAN_IDENTITY), Mage::getStoreConfig(self::XML_PATH_EMAIL_LOG_CLEAN_RECIPIENT), null, array('warnings' => join("\n", $this->_errors)) ); $translate->setTranslateInline(true); return $this; } /** * Clean logs * * @return Mage_Log_Model_Cron */ public function logClean() { if (!Mage::getStoreConfigFlag(self::XML_PATH_LOG_CLEAN_ENABLED)) { return $this; } $this->_errors = array(); try { Mage::getModel('log/log')->clean(); } catch (Exception $e) { $this->_errors[] = $e->getMessage(); $this->_errors[] = $e->getTrace(); } $this->_sendLogCleanEmail(); return $this; } }