diff --git a/lib/Logging/LogHandler.php b/lib/Logging/LogHandler.php index 76716925e7..4e8040655b 100644 --- a/lib/Logging/LogHandler.php +++ b/lib/Logging/LogHandler.php @@ -3,11 +3,13 @@ namespace MailPoet\Logging; use MailPoet\Entities\LogEntity; -use MailPoet\Models\Log; -use MailPoetVendor\Carbon\Carbon; use MailPoetVendor\Monolog\Handler\AbstractProcessingHandler; class LogHandler extends AbstractProcessingHandler { + /** + * Logs older than this many days will be deleted + */ + const DAYS_TO_KEEP_LOGS = 30; /** * Percentage value, what is the probability of running purge routine @@ -15,11 +17,6 @@ class LogHandler extends AbstractProcessingHandler { */ const LOG_PURGE_PROBABILITY = 5; - /** - * Logs older than this many days will be deleted - */ - const DAYS_TO_KEEP_LOGS = 30; - /** @var callable|null */ private $randFunction; @@ -60,7 +57,6 @@ class LogHandler extends AbstractProcessingHandler { } private function purgeOldLogs() { - Log::whereLt('created_at', Carbon::now()->subDays(self::DAYS_TO_KEEP_LOGS)->toDateTimeString()) - ->deleteMany(); + $this->logRepository->purgeOldLogs(self::DAYS_TO_KEEP_LOGS); } } diff --git a/lib/Logging/LogRepository.php b/lib/Logging/LogRepository.php index e52674ff6c..799dddcca8 100644 --- a/lib/Logging/LogRepository.php +++ b/lib/Logging/LogRepository.php @@ -5,6 +5,7 @@ namespace MailPoet\Logging; use MailPoet\Doctrine\Repository; use MailPoet\Entities\LogEntity; use MailPoet\Util\Helpers; +use MailPoetVendor\Carbon\Carbon; /** * @extends Repository @@ -62,4 +63,12 @@ class LogRepository extends Repository { return $query->getQuery()->getResult(); } + + public function purgeOldLogs(int $daysToKeepLogs) { + $queryBuilder = $this->entityManager->createQueryBuilder(); + return $queryBuilder->delete(LogEntity::class, 'l') + ->where('l.createdAt < :days') + ->setParameter('days', Carbon::now()->subDays($daysToKeepLogs)->toDateTimeString()) + ->getQuery()->execute(); + } }