0byt3m1n1 - D7net
0byt3m1n1 - D7net
Path:
/
home
/
s13cf5ef
/
www
/
pshoptuscamisetaspersonalizadas
/
classes
/
[
Home
]
Name File: Logger.php
< back
<?php /* * 2007-2013 PrestaShop * * NOTICE OF LICENSE * * This source file is subject to the Open Software License (OSL 3.0) * that is bundled with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://opensource.org/licenses/osl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to license@prestashop.com so we can send you a copy immediately. * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade PrestaShop to newer * versions in the future. If you wish to customize PrestaShop for your * needs please refer to http://www.prestashop.com for more information. * * @author PrestaShop SA <contact@prestashop.com> * @copyright 2007-2013 PrestaShop SA * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) * International Registered Trademark & Property of PrestaShop SA */ class LoggerCore extends ObjectModel { /** @var integer Log id */ public $id_log; /** @var integer Log severity */ public $severity; /** @var integer Error code */ public $error_code; /** @var string Message */ public $message; /** @var string Object type (eg. Order, Customer...) */ public $object_type; /** @var integer Object ID */ public $object_id; /** @var string Object creation date */ public $date_add; /** @var string Object last modification date */ public $date_upd; /** * @see ObjectModel::$definition */ public static $definition = array( 'table' => 'log', 'primary' => 'id_log', 'fields' => array( 'severity' => array('type' => self::TYPE_INT, 'validate' => 'isInt', 'required' => true), 'error_code' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedInt'), 'message' => array('type' => self::TYPE_STRING, 'validate' => 'isMessage', 'required' => true), 'object_id' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedInt'), 'object_type' => array('type' => self::TYPE_STRING, 'validate' => 'isName'), 'date_add' => array('type' => self::TYPE_DATE, 'validate' => 'isDate'), 'date_upd' => array('type' => self::TYPE_DATE, 'validate' => 'isDate'), ), ); protected static $is_present = array(); /** * Send e-mail to the shop owner only if the minimal severity level has been reached * * @param Logger * @param unknown_type $log */ public static function sendByMail($log) { if (intval(Configuration::get('PS_LOGS_BY_EMAIL')) <= intval($log->severity)) Mail::Send( (int)Configuration::get('PS_LANG_DEFAULT'), 'log_alert', Mail::l('Log: You have a new alert from your shop', (int)Configuration::get('PS_LANG_DEFAULT')), array(), Configuration::get('PS_SHOP_EMAIL') ); } /** * add a log item to the database and send a mail if configured for this $severity * * @param string $message the log message * @param int $severity * @param int $error_code * @param string $object_type * @param int $object_id * @param boolean $allow_duplicate if set to true, can log several time the same information (not recommended) * @return boolean true if succeed */ public static function addLog($message, $severity = 1, $error_code = null, $object_type = null, $object_id = null, $allow_duplicate = false) { $log = new Logger(); $log->severity = intval($severity); $log->error_code = intval($error_code); $log->message = pSQL($message); $log->date_add = date('Y-m-d H:i:s'); $log->date_upd = date('Y-m-d H:i:s'); if (!empty($object_type) && !empty($object_id)) { $log->object_type = pSQL($object_type); $log->object_id = intval($object_id); } Logger::sendByMail($log); if ($allow_duplicate || !$log->_isPresent()) { $res = $log->add(); if ($res) { self::$is_present[$log->getHash()] = isset(self::$is_present[$log->getHash()])?self::$is_present[$log->getHash()] + 1:1; return true; } } return false; } /** * this function md5($this->message.$this->severity.$this->error_code.$this->object_type.$this->object_id) * * @return string hash */ public function getHash() { if (empty($this->hash)) $this->hash = md5($this->message.$this->severity.$this->error_code.$this->object_type.$this->object_id); return $this->hash; } /** * check if this log message already exists in database. * * @return true if exists */ protected function _isPresent() { if (!isset(self::$is_present[md5($this->message)])) self::$is_present[$this->getHash()] = Db::getInstance()->getValue('SELECT COUNT(*) FROM `'._DB_PREFIX_.'log` WHERE `message` = \''.$this->message.'\' AND `severity` = \''.$this->severity.'\' AND `error_code` = \''.$this->error_code.'\' AND `object_type` = \''.$this->object_type.'\' AND `object_id` = \''.$this->object_id.'\' '); return self::$is_present[$this->getHash()]; } }
©
2018. | Recode by D7net