Code cleanup

This commit is contained in:
Tim 2019-05-28 16:06:03 +02:00
parent 92f9445633
commit 49b9d139ec
2 changed files with 49 additions and 35 deletions

View File

@ -1,9 +1,7 @@
<?php <?php
namespace App\Ardent\LoggerBundle\Entity; namespace App\Ardent\LoggerBundle\Entity;
use DateTime; use DateTime;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
@ -22,7 +20,7 @@ class LogEntry
private $id; private $id;
/** /**
* @ORM\Column(type="string") * @ORM\Column(type="text")
*/ */
private $message; private $message;
@ -69,11 +67,13 @@ class LogEntry
/** /**
* @param mixed $id * @param mixed $id
*
* @return LogEntry * @return LogEntry
*/ */
public function setId($id) public function setId($id)
{ {
$this->id = $id; $this->id = $id;
return $this; return $this;
} }
@ -87,11 +87,13 @@ class LogEntry
/** /**
* @param mixed $message * @param mixed $message
*
* @return LogEntry * @return LogEntry
*/ */
public function setMessage($message) public function setMessage($message)
{ {
$this->message = $message; $this->message = $message;
return $this; return $this;
} }
@ -105,11 +107,13 @@ class LogEntry
/** /**
* @param mixed $context * @param mixed $context
*
* @return LogEntry * @return LogEntry
*/ */
public function setContext($context) public function setContext($context)
{ {
$this->context = $context; $this->context = $context;
return $this; return $this;
} }
@ -123,11 +127,13 @@ class LogEntry
/** /**
* @param mixed $level * @param mixed $level
*
* @return LogEntry * @return LogEntry
*/ */
public function setLevel($level) public function setLevel($level)
{ {
$this->level = $level; $this->level = $level;
return $this; return $this;
} }
@ -141,11 +147,13 @@ class LogEntry
/** /**
* @param mixed $levelName * @param mixed $levelName
*
* @return LogEntry * @return LogEntry
*/ */
public function setLevelName($levelName) public function setLevelName($levelName)
{ {
$this->levelName = $levelName; $this->levelName = $levelName;
return $this; return $this;
} }
@ -159,11 +167,13 @@ class LogEntry
/** /**
* @param mixed $channel * @param mixed $channel
*
* @return LogEntry * @return LogEntry
*/ */
public function setChannel($channel) public function setChannel($channel)
{ {
$this->channel = $channel; $this->channel = $channel;
return $this; return $this;
} }
@ -177,11 +187,13 @@ class LogEntry
/** /**
* @param mixed $createdAt * @param mixed $createdAt
*
* @return LogEntry * @return LogEntry
*/ */
public function setCreatedAt($createdAt) public function setCreatedAt($createdAt)
{ {
$this->createdAt = $createdAt; $this->createdAt = $createdAt;
return $this; return $this;
} }
} }

View File

@ -1,11 +1,8 @@
<?php <?php
namespace App\Ardent\LoggerBundle\Service; namespace App\Ardent\LoggerBundle\Service;
use App\Ardent\LoggerBundle\Entity\LogEntry; use App\Ardent\LoggerBundle\Entity\LogEntry;
use DateTime;
use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
use phpDocumentor\Reflection\Types\This; use phpDocumentor\Reflection\Types\This;
use Psr\Log\InvalidArgumentException; use Psr\Log\InvalidArgumentException;
@ -13,24 +10,24 @@ use Psr\Log\InvalidArgumentException;
class LoggerService class LoggerService
{ {
/** /**
* Detailed debug information * Detailed debug information.
*/ */
const DEBUG = 100; const DEBUG = 100;
/** /**
* Interesting events * Interesting events.
* *
* Examples: User logs in, SQL logs. * Examples: User logs in, SQL logs.
*/ */
const INFO = 200; const INFO = 200;
/** /**
* Uncommon events * Uncommon events.
*/ */
const NOTICE = 250; const NOTICE = 250;
/** /**
* Exceptional occurrences that are not errors * Exceptional occurrences that are not errors.
* *
* Examples: Use of deprecated APIs, poor use of an API, * Examples: Use of deprecated APIs, poor use of an API,
* undesirable things that are not necessarily wrong. * undesirable things that are not necessarily wrong.
@ -38,19 +35,19 @@ class LoggerService
const WARNING = 300; const WARNING = 300;
/** /**
* Runtime errors * Runtime errors.
*/ */
const ERROR = 400; const ERROR = 400;
/** /**
* Critical conditions * Critical conditions.
* *
* Example: Application component unavailable, unexpected exception. * Example: Application component unavailable, unexpected exception.
*/ */
const CRITICAL = 500; const CRITICAL = 500;
/** /**
* Action must be taken immediately * Action must be taken immediately.
* *
* Example: Entire website down, database unavailable, etc. * Example: Entire website down, database unavailable, etc.
* This should trigger the SMS alerts and wake you up. * This should trigger the SMS alerts and wake you up.
@ -63,18 +60,18 @@ class LoggerService
const EMERGENCY = 600; const EMERGENCY = 600;
/** /**
* Logging levels from syslog protocol defined in RFC 5424 * Logging levels from syslog protocol defined in RFC 5424.
* *
* @var array $levels Logging levels * @var array Logging levels
*/ */
protected static $levels = array( protected static $levels = array(
self::DEBUG => 'DEBUG', self::DEBUG => 'DEBUG',
self::INFO => 'INFO', self::INFO => 'INFO',
self::NOTICE => 'NOTICE', self::NOTICE => 'NOTICE',
self::WARNING => 'WARNING', self::WARNING => 'WARNING',
self::ERROR => 'ERROR', self::ERROR => 'ERROR',
self::CRITICAL => 'CRITICAL', self::CRITICAL => 'CRITICAL',
self::ALERT => 'ALERT', self::ALERT => 'ALERT',
self::EMERGENCY => 'EMERGENCY', self::EMERGENCY => 'EMERGENCY',
); );
@ -87,11 +84,12 @@ class LoggerService
/** /**
* LoggerService constructor. * LoggerService constructor.
*
* @param EntityManagerInterface $em * @param EntityManagerInterface $em
*/ */
public function __construct(EntityManagerInterface $em) public function __construct(EntityManagerInterface $em)
{ {
$this->name = ""; $this->name = '';
$this->em = $em; $this->em = $em;
} }
@ -113,9 +111,9 @@ class LoggerService
/** /**
* Adds a log record. * Adds a log record.
* *
* @param int $level The logging level * @param int $level The logging level
* @param string $message The log message * @param string $message The log message
* @param array $context The log context * @param array $context The log context
* *
* @return bool Whether the record has been processed * @return bool Whether the record has been processed
*/ */
@ -123,8 +121,8 @@ class LoggerService
{ {
$levelName = static::getLevelName($level); $levelName = static::getLevelName($level);
if( $level > self::WARNING) { if ($level > self::WARNING) {
$context += $this->automaticContext(); $context = array_merge($context, $this->automaticContext());
} }
$logEntry = (new LogEntry()) $logEntry = (new LogEntry())
@ -138,11 +136,12 @@ class LoggerService
$this->em->persist($logEntry); $this->em->persist($logEntry);
$this->em->flush(); $this->em->flush();
return true; return $logEntry->getId();
} }
private function automaticContext() private function automaticContext()
{ {
// filter the kernel classes and itself
$classFilters = [ $classFilters = [
'Ardent\LoggerBundle\Service\LoggerService', 'Ardent\LoggerBundle\Service\LoggerService',
'HttpKernel\Kernel', 'HttpKernel\Kernel',
@ -154,17 +153,18 @@ class LoggerService
foreach ($backtraces as $trace) { foreach ($backtraces as $trace) {
$skip = false; $skip = false;
foreach ($classFilters as $class) { foreach ($classFilters as $class) {
if(strpos($trace['class'], $class)) { if (strpos($trace['class'], $class)) {
$skip = true; $skip = true;
} }
} }
if($skip) { if ($skip) {
continue; continue;
} }
$context[] = "function[$traces]: ".$trace['function']; $context[] = "function[$traces]: ".$trace['function'];
$context[] = "class[$traces]: ".$trace['class']; $context[] = "class[$traces]: ".$trace['class'];
++$traces; ++$traces;
} }
return $context; return $context;
} }
@ -179,7 +179,6 @@ class LoggerService
->orderBy('l.createdAt', 'DESC') ->orderBy('l.createdAt', 'DESC')
->setParameter(1, $level) ->setParameter(1, $level)
->setMaxResults($amount); ->setMaxResults($amount);
;
return $qb->getQuery()->getResult(); return $qb->getQuery()->getResult();
} }
@ -187,7 +186,8 @@ class LoggerService
/** /**
* Gets the name of the logging level. * Gets the name of the logging level.
* *
* @param int $level * @param int $level
*
* @return string * @return string
*/ */
public static function getLevelName($level) public static function getLevelName($level)
@ -209,11 +209,13 @@ class LoggerService
/** /**
* @param mixed $name * @param mixed $name
*
* @return LoggerService * @return LoggerService
*/ */
public function setName($name) public function setName($name)
{ {
$this->name = $name; $this->name = $name;
return $this; return $this;
} }
} }