mirror of
https://github.com/Aviortheking/DeltaCMS.git
synced 2025-07-23 10:49:50 +00:00
update
This commit is contained in:
65
src/AdminPanel/Logger/Logger.php
Normal file
65
src/AdminPanel/Logger/Logger.php
Normal file
@ -0,0 +1,65 @@
|
||||
<?php
|
||||
|
||||
namespace AdminPanel\Logger;
|
||||
|
||||
use Psr\Log\AbstractLogger;
|
||||
use Psr\Log\InvalidArgumentException;
|
||||
|
||||
class Logger extends AbstractLogger
|
||||
{
|
||||
|
||||
private $file;
|
||||
private $exception = "{code} {file}[{line}] {type} {message}\n";
|
||||
private $start = "[{logger_logger}]: {logger_time} ";
|
||||
|
||||
private $levels = array(
|
||||
'emergency',
|
||||
'alert',
|
||||
'critical',
|
||||
'error',
|
||||
'warning',
|
||||
'notice',
|
||||
'info',
|
||||
'debug'
|
||||
);
|
||||
|
||||
public function __construct($file = "./logs.log")
|
||||
{
|
||||
if (!file_exists($file)) {
|
||||
fclose(fopen($file, 'w'));
|
||||
}
|
||||
$this->file = $file;
|
||||
}
|
||||
|
||||
public static function fillMessage($message, $context)
|
||||
{
|
||||
foreach ($context as $key => $value) {
|
||||
$message = preg_replace("/\{$key\}/", $value, $message);
|
||||
}
|
||||
return $message;
|
||||
}
|
||||
|
||||
public function log($level, $message = null, array $context = array())
|
||||
{
|
||||
|
||||
if (!in_array($level, $this->levels)) {
|
||||
throw new InvalidArgumentException('Level not supported');
|
||||
}
|
||||
$context["logger_logger"] = ucfirst($level);
|
||||
$context["logger_time"] = (new \DateTime())->format("Y-m-d H:i:s");
|
||||
if ($message != null) {
|
||||
file_put_contents($this->file, $this->fillMessage($this->start . $message . "\n", $context), FILE_APPEND);
|
||||
}
|
||||
if (isset($context["exception"]) && $context["exception"] instanceof \Exception) {
|
||||
$context['code'] = $context["exception"]->getCode();
|
||||
$context['file'] = $context["exception"]->getFile();
|
||||
$context['line'] = get_class($context["exception"]);
|
||||
$context['type'] = $context["exception"]->getCode();
|
||||
$context['message'] = $context["exception"]->getMessage();
|
||||
file_put_contents($this->file, $this->fillMessage($this->start . $this->exception, $context), FILE_APPEND);
|
||||
}
|
||||
if ($message === null && !isset($context["exception"])) {
|
||||
throw new InvalidArgumentException("no exception nor message was found");
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user