$params * @param list $elements * @param bool $obfuscateParameters */ public function log( string $text, array $params, array $elements, bool $obfuscateParameters = false, ): void { foreach ($elements as $element) { if (!array_key_exists($element, $params)) { $message = '$params["' . $element . '"] was missing.'; $context = ['app' => 'admin_audit']; if (!$obfuscateParameters) { $message .= ' Transferred value: {params}'; $context['params'] = $params; } $this->logger->critical($message, $context); return; } } $replaceArray = []; foreach ($elements as $element) { $value = $params[$element]; if ($value instanceof \DateTimeInterface) { $value = $value->format('Y-m-d H:i:s'); } $replaceArray[] = $value; } $this->logger->info( vsprintf($text, $replaceArray), ['app' => 'admin_audit'], ); } }