PageRenderTime 42ms CodeModel.GetById 17ms RepoModel.GetById 0ms app.codeStats 0ms

/app/code/core/Mage/Log/Model/Cron.php

https://bitbucket.org/MXWest/magento-ce-1.5.1.0
PHP | 103 lines | 43 code | 12 blank | 48 comment | 2 complexity | a6713a10c39c71e91ab0323e946e2594 MD5 | raw file
Possible License(s): CC-BY-SA-3.0, LGPL-2.1, GPL-2.0, WTFPL
  1. <?php
  2. /**
  3. * Magento
  4. *
  5. * NOTICE OF LICENSE
  6. *
  7. * This source file is subject to the Open Software License (OSL 3.0)
  8. * that is bundled with this package in the file LICENSE.txt.
  9. * It is also available through the world-wide-web at this URL:
  10. * http://opensource.org/licenses/osl-3.0.php
  11. * If you did not receive a copy of the license and are unable to
  12. * obtain it through the world-wide-web, please send an email
  13. * to license@magentocommerce.com so we can send you a copy immediately.
  14. *
  15. * DISCLAIMER
  16. *
  17. * Do not edit or add to this file if you wish to upgrade Magento to newer
  18. * versions in the future. If you wish to customize Magento for your
  19. * needs please refer to http://www.magentocommerce.com for more information.
  20. *
  21. * @category Mage
  22. * @package Mage_Log
  23. * @copyright Copyright (c) 2010 Magento Inc. (http://www.magentocommerce.com)
  24. * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
  25. */
  26. /**
  27. * Log Cron Model
  28. *
  29. * @category Mage
  30. * @package Mage_Log
  31. * @author Magento Core Team <core@magentocommerce.com>
  32. */
  33. class Mage_Log_Model_Cron extends Mage_Core_Model_Abstract
  34. {
  35. const XML_PATH_EMAIL_LOG_CLEAN_TEMPLATE = 'system/log/error_email_template';
  36. const XML_PATH_EMAIL_LOG_CLEAN_IDENTITY = 'system/log/error_email_identity';
  37. const XML_PATH_EMAIL_LOG_CLEAN_RECIPIENT = 'system/log/error_email';
  38. /**
  39. * Error messages
  40. *
  41. * @var array
  42. */
  43. protected $_errors = array();
  44. /**
  45. * Send Log Clean Warnings
  46. *
  47. * @return Mage_Log_Model_Cron
  48. */
  49. protected function _sendLogCleanEmail()
  50. {
  51. if (!$this->_errors) {
  52. return $this;
  53. }
  54. if (!Mage::getStoreConfig(self::XML_PATH_EMAIL_LOG_CLEAN_RECIPIENT)) {
  55. return $this;
  56. }
  57. $translate = Mage::getSingleton('core/translate');
  58. /* @var $translate Mage_Core_Model_Translate */
  59. $translate->setTranslateInline(false);
  60. $emailTemplate = Mage::getModel('core/email_template');
  61. /* @var $emailTemplate Mage_Core_Model_Email_Template */
  62. $emailTemplate->setDesignConfig(array('area' => 'backend'))
  63. ->sendTransactional(
  64. Mage::getStoreConfig(self::XML_PATH_EMAIL_LOG_CLEAN_TEMPLATE),
  65. Mage::getStoreConfig(self::XML_PATH_EMAIL_LOG_CLEAN_IDENTITY),
  66. Mage::getStoreConfig(self::XML_PATH_EMAIL_LOG_CLEAN_RECIPIENT),
  67. null,
  68. array('warnings' => join("\n", $this->_errors))
  69. );
  70. $translate->setTranslateInline(true);
  71. return $this;
  72. }
  73. /**
  74. * Clean logs
  75. *
  76. * @return Mage_Log_Model_Cron
  77. */
  78. public function logClean()
  79. {
  80. $this->_errors = array();
  81. try {
  82. Mage::getModel('log/log')->clean();
  83. }
  84. catch (Exception $e) {
  85. $this->_errors[] = $e->getMessage();
  86. $this->_errors[] = $e->getTrace();
  87. }
  88. $this->_sendLogCleanEmail();
  89. return $this;
  90. }
  91. }