[*] Core: Log the exceptions in a file #PSCFV-6334
This commit is contained in:
@@ -34,6 +34,7 @@ class PrestaShopExceptionCore extends Exception
|
|||||||
*/
|
*/
|
||||||
public function displayMessage()
|
public function displayMessage()
|
||||||
{
|
{
|
||||||
|
header('HTTP/1.1 500 Internal Server Error');
|
||||||
if (_PS_MODE_DEV_ || defined('_PS_ADMIN_DIR_'))
|
if (_PS_MODE_DEV_ || defined('_PS_ADMIN_DIR_'))
|
||||||
{
|
{
|
||||||
// Display error message
|
// Display error message
|
||||||
@@ -50,12 +51,7 @@ class PrestaShopExceptionCore extends Exception
|
|||||||
</style>';
|
</style>';
|
||||||
echo '<div id="psException">';
|
echo '<div id="psException">';
|
||||||
echo '<h2>['.get_class($this).']</h2>';
|
echo '<h2>['.get_class($this).']</h2>';
|
||||||
printf(
|
echo $this->getExentedMessage();
|
||||||
'<p><b>%s</b><br /><i>at line </i><b>%d</b><i> in file </i><b>%s</b></p>',
|
|
||||||
$this->getMessage(),
|
|
||||||
$this->getLine(),
|
|
||||||
ltrim(str_replace(array(_PS_ROOT_DIR_, '\\'), array('', '/'), $this->getFile()), '/')
|
|
||||||
);
|
|
||||||
|
|
||||||
$this->displayFileDebug($this->getFile(), $this->getLine());
|
$this->displayFileDebug($this->getFile(), $this->getLine());
|
||||||
|
|
||||||
@@ -85,11 +81,12 @@ class PrestaShopExceptionCore extends Exception
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// If not in mode dev, launch a http 500 error
|
// If not in mode dev, display an error page
|
||||||
header('HTTP/1.1 500 Internal Server Error');
|
|
||||||
if (file_exists(_PS_ROOT_DIR_.'/error500.html'))
|
if (file_exists(_PS_ROOT_DIR_.'/error500.html'))
|
||||||
echo file_get_contents(_PS_ROOT_DIR_.'/error500.html');
|
echo file_get_contents(_PS_ROOT_DIR_.'/error500.html');
|
||||||
}
|
}
|
||||||
|
// Log the error in the disk
|
||||||
|
$this->logError();
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -140,4 +137,33 @@ class PrestaShopExceptionCore extends Exception
|
|||||||
}
|
}
|
||||||
echo '</pre>';
|
echo '</pre>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Log the error on the disk
|
||||||
|
*/
|
||||||
|
protected function logError()
|
||||||
|
{
|
||||||
|
$logger = new FileLogger();
|
||||||
|
$logger->setFilename(_PS_ROOT_DIR_.'/log/'.date('Ymd').'_exception.log');
|
||||||
|
$logger->logError($this->getExentedMessage(false));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the content of the Exception
|
||||||
|
* @return string content of the exception
|
||||||
|
*/
|
||||||
|
protected function getExentedMessage($html = true)
|
||||||
|
{
|
||||||
|
$format = '<p><b>%s</b><br /><i>at line </i><b>%d</b><i> in file </i><b>%s</b></p>';
|
||||||
|
if (!$html)
|
||||||
|
$format = strip_tags(str_replace('<br />', ' ', $format));
|
||||||
|
|
||||||
|
return sprintf(
|
||||||
|
$format,
|
||||||
|
$this->getMessage(),
|
||||||
|
$this->getLine(),
|
||||||
|
ltrim(str_replace(array(_PS_ROOT_DIR_, '\\'), array('', '/'), $this->getFile()), '/')
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user