00001 <?php 00002 /** 00003 * Magento 00004 * 00005 * NOTICE OF LICENSE 00006 * 00007 * This source file is subject to the Open Software License (OSL 3.0) 00008 * that is bundled with this package in the file LICENSE.txt. 00009 * It is also available through the world-wide-web at this URL: 00010 * http://opensource.org/licenses/osl-3.0.php 00011 * If you did not receive a copy of the license and are unable to 00012 * obtain it through the world-wide-web, please send an email 00013 * to license@magentocommerce.com so we can send you a copy immediately. 00014 * 00015 * DISCLAIMER 00016 * 00017 * Do not edit or add to this file if you wish to upgrade Magento to newer 00018 * versions in the future. If you wish to customize Magento for your 00019 * needs please refer to http://www.magentocommerce.com for more information. 00020 * 00021 * @category Mage 00022 * @package Mage_Log 00023 * @copyright Copyright (c) 2008 Irubin Consulting Inc. DBA Varien (http://www.varien.com) 00024 * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) 00025 */ 00026 00027 00028 /** 00029 * Log Cron Model 00030 * 00031 * @category Mage 00032 * @package Mage_Log 00033 * @author Magento Core Team <core@magentocommerce.com> 00034 */ 00035 class Mage_Log_Model_Cron extends Mage_Core_Model_Abstract 00036 { 00037 const XML_PATH_EMAIL_LOG_CLEAN_TEMPLATE = 'system/log/error_email_template'; 00038 const XML_PATH_EMAIL_LOG_CLEAN_IDENTITY = 'system/log/error_email_identity'; 00039 const XML_PATH_EMAIL_LOG_CLEAN_RECIPIENT = 'system/log/error_email'; 00040 00041 /** 00042 * Error messages 00043 * 00044 * @var array 00045 */ 00046 protected $_errors = array(); 00047 00048 /** 00049 * Send Log Clean Warnings 00050 * 00051 * @return Mage_Log_Model_Cron 00052 */ 00053 protected function _sendLogCleanEmail() 00054 { 00055 if (!$this->_errors) { 00056 return $this; 00057 } 00058 if (!Mage::getStoreConfig(self::XML_PATH_EMAIL_LOG_CLEAN_RECIPIENT)) { 00059 return $this; 00060 } 00061 00062 $translate = Mage::getSingleton('core/translate'); 00063 /* @var $translate Mage_Core_Model_Translate */ 00064 $translate->setTranslateInline(false); 00065 00066 $emailTemplate = Mage::getModel('core/email_template'); 00067 /* @var $emailTemplate Mage_Core_Model_Email_Template */ 00068 $emailTemplate->setDesignConfig(array('area' => 'backend')) 00069 ->sendTransactional( 00070 Mage::getStoreConfig(self::XML_PATH_EMAIL_LOG_CLEAN_TEMPLATE), 00071 Mage::getStoreConfig(self::XML_PATH_EMAIL_LOG_CLEAN_IDENTITY), 00072 Mage::getStoreConfig(self::XML_PATH_EMAIL_LOG_CLEAN_RECIPIENT), 00073 null, 00074 array('warnings' => join("\n", $this->_errors)) 00075 ); 00076 00077 $translate->setTranslateInline(true); 00078 00079 return $this; 00080 } 00081 00082 /** 00083 * Clean logs 00084 * 00085 * @return Mage_Log_Model_Cron 00086 */ 00087 public function logClean() 00088 { 00089 $this->_errors = array(); 00090 00091 try { 00092 Mage::getModel('log/log')->clean(); 00093 } 00094 catch (Exception $e) { 00095 $this->_errors[] = $e->getMessage(); 00096 $this->_errors[] = $e->getTrace(); 00097 } 00098 00099 $this->_sendLogCleanEmail(); 00100 00101 return $this; 00102 } 00103 }