From 7fa063ceca5d78741c47f645c6dfdf65e4be7330 Mon Sep 17 00:00:00 2001
From: Joas Schilling <coding@schilljs.com>
Date: Tue, 10 Jan 2017 12:58:23 +0100
Subject: [PATCH] Better fallback for unknown log types

Signed-off-by: Joas Schilling <coding@schilljs.com>
---
 lib/private/Log.php      | 19 ++++++++++---------
 tests/lib/LoggerTest.php |  6 ++++--
 2 files changed, 14 insertions(+), 11 deletions(-)

diff --git a/lib/private/Log.php b/lib/private/Log.php
index 5ba19698612..fddd3593127 100644
--- a/lib/private/Log.php
+++ b/lib/private/Log.php
@@ -330,18 +330,19 @@ class Log implements ILogger {
 	 * @internal
 	 */
 	public static function getLogClass($logType) {
-		// TODO: Drop backwards compatibility for config in the future
 		switch (strtolower($logType)) {
+			case 'errorlog':
+				return \OC\Log\Errorlog::class;
+			case 'syslog':
+				return \OC\Log\Syslog::class;
+			case 'file':
+				return \OC\Log\File::class;
+
+			// Backwards compatibility for old and fallback for unknown log types
 			case 'owncloud':
 			case 'nextcloud':
-				$logType = 'file';
+			default:
+				return \OC\Log\File::class;
 		}
-		$logClass = 'OC\\Log\\' . ucfirst($logType);
-
-		if (!class_exists($logClass)) {
-			$logClass = \OC\Log\File::class;
-		}
-
-		return $logClass;
 	}
 }
diff --git a/tests/lib/LoggerTest.php b/tests/lib/LoggerTest.php
index 8bae8d18228..da9cedc9f56 100644
--- a/tests/lib/LoggerTest.php
+++ b/tests/lib/LoggerTest.php
@@ -140,11 +140,13 @@ class LoggerTest extends TestCase {
 
 	public function dataGetLogClass() {
 		return [
-			['owncloud', \OC\Log\File::class],
-			['nextcloud', \OC\Log\File::class],
 			['file', \OC\Log\File::class],
 			['errorlog', \OC\Log\Errorlog::class],
 			['syslog', \OC\Log\Syslog::class],
+
+			['owncloud', \OC\Log\File::class],
+			['nextcloud', \OC\Log\File::class],
+			['foobar', \OC\Log\File::class],
 		];
 	}
 
-- 
GitLab