connection->insert('log_entry', [ 'channel' => $record->channel, 'message' => $this->replacePlaceHolder($record), 'context' => $record->context, 'extra' => $record->extra, 'error_code' => $record->extra['error_code'] ?? null, 'created_at' => new \DateTimeImmutable('now'), ], [ 'context' => Types::JSON, 'extra' => Types::JSON, 'created_at' => Types::DATETIME_IMMUTABLE, ]); } private function replacePlaceHolder(LogRecord $record): string { $message = $record->message; if (!str_contains($message, '{')) { return $message; } $replacements = []; foreach ($record->context as $k => $v) { $replacements['{'.$k.'}'] = $v; } return strtr($message, $replacements); } }