Use doctrine to purge old logs
[MAILPOET-3624]
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
@@ -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<LogEntity>
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user