initialized) { $this->initialized(); } $this->cleanup(); $this->statement->execute([ 'channel' => $record->channel, 'level' => $record->level->getName(), 'message' => $record->formatted, 'time' => $record->datetime->format('Y-m-d H:i:s.u'), 'context' => (count($record->context) > 0) ? json_encode($record->context, JSON_UNESCAPED_SLASHES) : '', 'extra' => (count($record->extra) > 0) ? json_encode($record->extra, JSON_UNESCAPED_SLASHES) : '' ]); } private function initialized(): void { $query = <<connection->getPDO()->exec($query); $query = <<statement = $this->connection->getPDO()->prepare($query); $this->initialized = true; } private function cleanup(): void { $query = "DELETE FROM monolog WHERE time < DATE_SUB(CURDATE(), INTERVAL {$this->retainDays} DAY)"; $this->connection->query($query); } }