/var/www/vhosts/ihelp.ro/_OLD/vendor/cakephp/cakephp/src/Error
Edit: /var/www/vhosts/ihelp.ro/_OLD/vendor/cakephp/cakephp/src/Error/ErrorLogger.php (4802B)
[],
'trace' => false,
];
/**
* Constructor
*
* @param array $config Config array.
*/
public function __construct(array $config = [])
{
$this->setConfig($config);
}
/**
* @inheritDoc
*/
public function logMessage($level, string $message, array $context = []): bool
{
if (!empty($context['request'])) {
$message .= $this->getRequestContext($context['request']);
}
if (!empty($context['trace'])) {
$message .= "\nTrace:\n" . $context['trace'] . "\n";
}
return Log::write($level, $message);
}
/**
* @inheritDoc
*/
public function log(Throwable $exception, ?ServerRequestInterface $request = null): bool
{
foreach ($this->getConfig('skipLog') as $class) {
if ($exception instanceof $class) {
return false;
}
}
$message = $this->getMessage($exception);
if ($request !== null) {
$message .= $this->getRequestContext($request);
}
$message .= "\n\n";
return Log::error($message);
}
/**
* Generate the message for the exception
*
* @param \Throwable $exception The exception to log a message for.
* @param bool $isPrevious False for original exception, true for previous
* @return string Error message
*/
protected function getMessage(Throwable $exception, bool $isPrevious = false): string
{
$message = sprintf(
'%s[%s] %s in %s on line %s',
$isPrevious ? "\nCaused by: " : '',
get_class($exception),
$exception->getMessage(),
$exception->getFile(),
$exception->getLine()
);
$debug = Configure::read('debug');
if ($debug && $exception instanceof Exception) {
$attributes = $exception->getAttributes();
if ($attributes) {
$message .= "\nException Attributes: " . var_export($exception->getAttributes(), true);
}
}
if ($this->getConfig('trace')) {
/** @var array $trace */
$trace = Debugger::formatTrace($exception, ['format' => 'points']);
$message .= "\nStack Trace:\n";
foreach ($trace as $line) {
if (is_string($line)) {
$message .= '- ' . $line;
} else {
$message .= "- {$line['file']}:{$line['line']}\n";
}
}
}
$previous = $exception->getPrevious();
if ($previous) {
$message .= $this->getMessage($previous, true);
}
return $message;
}
/**
* Get the request context for an error/exception trace.
*
* @param \Psr\Http\Message\ServerRequestInterface $request The request to read from.
* @return string
*/
public function getRequestContext(ServerRequestInterface $request): string
{
$message = "\nRequest URL: " . $request->getRequestTarget();
$referer = $request->getHeaderLine('Referer');
if ($referer) {
$message .= "\nReferer URL: " . $referer;
}
if (method_exists($request, 'clientIp')) {
$clientIp = $request->clientIp();
if ($clientIp && $clientIp !== '::1') {
$message .= "\nClient IP: " . $clientIp;
}
}
return $message;
}
}