diff --git a/lib/private/Log/ExceptionSerializer.php b/lib/private/Log/ExceptionSerializer.php
index 499bb4101e93d40d444fc1495f76766f01b16c2f..b9932cfa05ceb99cc9e9adf9a9f773d0130992ab 100644
--- a/lib/private/Log/ExceptionSerializer.php
+++ b/lib/private/Log/ExceptionSerializer.php
@@ -21,7 +21,9 @@
 
 namespace OC\Log;
 
+use OC\Core\Controller\SetupController;
 use OC\HintException;
+use OC\Setup;
 
 class ExceptionSerializer {
 	const methodsWithSensitiveParameters = [
@@ -76,24 +78,36 @@ class ExceptionSerializer {
 
 		// files_external: UserStoragesController
 		'update',
+	];
 
-		// Setup
-		'install',
-
-		// SetupController
-		'run',
-		'display',
-		'loadAutoConfig',
+	const methodsWithSensitiveParametersByClass = [
+		SetupController::class => [
+			'run',
+			'display',
+			'loadAutoConfig',
+		],
+		Setup::class => [
+			'install'
+		]
 	];
 
+	private function editTrace(array &$sensitiveValues, array $traceLine): array {
+		$sensitiveValues = array_merge($sensitiveValues, $traceLine['args']);
+		$traceLine['args'] = ['*** sensitive parameters replaced ***'];
+		return $traceLine;
+	}
+
 	private function filterTrace(array $trace) {
 		$sensitiveValues = [];
 		$trace = array_map(function (array $traceLine) use (&$sensitiveValues) {
+			$className = $traceLine['class'];
+			if (isset(self::methodsWithSensitiveParametersByClass[$className])
+				&& in_array($traceLine['function'], self::methodsWithSensitiveParametersByClass[$className], true)) {
+				return $this->editTrace($sensitiveValues, $traceLine);
+			}
 			foreach (self::methodsWithSensitiveParameters as $sensitiveMethod) {
 				if (strpos($traceLine['function'], $sensitiveMethod) !== false) {
-					$sensitiveValues = array_merge($sensitiveValues, $traceLine['args']);
-					$traceLine['args'] = ['*** sensitive parameters replaced ***'];
-					return $traceLine;
+					return $this->editTrace($sensitiveValues, $traceLine);
 				}
 			}
 			return $traceLine;