From 069477e608566c6ea9edbe259b46c591a82bd8af Mon Sep 17 00:00:00 2001 From: =?utf8?q?C=C3=B4me=20Chilliet?= Date: Wed, 30 Mar 2022 10:55:41 +0200 Subject: [PATCH] Migrate more classes of lib/private to LoggerInterface MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Côme Chilliet --- lib/private/Files/Cache/Scanner.php | 17 +++++------ lib/private/Files/Mount/MountPoint.php | 6 ++-- .../Files/Mount/ObjectHomeMountProvider.php | 6 ++-- .../Files/ObjectStore/S3ConnectionTrait.php | 11 ++++--- lib/private/Files/View.php | 30 +++++++++---------- lib/private/Installer.php | 3 +- lib/private/NaturalSort.php | 4 +-- lib/private/Preview/Office.php | 6 ++-- lib/private/Preview/SVG.php | 6 ++-- lib/private/Share/Share.php | 22 +++++++------- lib/private/Support/CrashReport/Registry.php | 15 ++++------ 11 files changed, 59 insertions(+), 67 deletions(-) diff --git a/lib/private/Files/Cache/Scanner.php b/lib/private/Files/Cache/Scanner.php index dc36ad5b8ca..fb32b64c012 100644 --- a/lib/private/Files/Cache/Scanner.php +++ b/lib/private/Files/Cache/Scanner.php @@ -36,14 +36,14 @@ namespace OC\Files\Cache; use Doctrine\DBAL\Exception; -use OC\Files\Storage\Wrapper\Jail; -use OC\Files\Storage\Wrapper\Encoding; -use OC\Hooks\BasicEmitter; use OCP\Files\Cache\IScanner; use OCP\Files\ForbiddenException; use OCP\Files\Storage\IReliableEtagStorage; -use OCP\ILogger; use OCP\Lock\ILockingProvider; +use OC\Files\Storage\Wrapper\Encoding; +use OC\Files\Storage\Wrapper\Jail; +use OC\Hooks\BasicEmitter; +use Psr\Log\LoggerInterface; /** * Class Scanner @@ -115,7 +115,7 @@ class Scanner extends BasicEmitter implements IScanner { protected function getData($path) { $data = $this->storage->getMetaData($path); if (is_null($data)) { - \OCP\Util::writeLog(Scanner::class, "!!! Path '$path' is not accessible or present !!!", ILogger::DEBUG); + \OC::$server->get(LoggerInterface::class)->debug("!!! Path '$path' is not accessible or present !!!", ['app' => 'core']); } return $data; } @@ -425,7 +425,7 @@ class Scanner extends BasicEmitter implements IScanner { $file = trim(\OC\Files\Filesystem::normalizePath($originalFile), '/'); if (trim($originalFile, '/') !== $file) { // encoding mismatch, might require compatibility wrapper - \OC::$server->getLogger()->debug('Scanner: Skipping non-normalized file name "'. $originalFile . '" in path "' . $path . '".', ['app' => 'core']); + \OC::$server->get(LoggerInterface::class)->debug('Scanner: Skipping non-normalized file name "'. $originalFile . '" in path "' . $path . '".', ['app' => 'core']); $this->emit('\OC\Files\Cache\Scanner', 'normalizedNameMismatch', [$path ? $path . '/' . $originalFile : $originalFile]); // skip this entry continue; @@ -456,10 +456,9 @@ class Scanner extends BasicEmitter implements IScanner { \OC::$server->getDatabaseConnection()->rollback(); \OC::$server->getDatabaseConnection()->beginTransaction(); } - \OC::$server->getLogger()->logException($ex, [ - 'message' => 'Exception while scanning file "' . $child . '"', - 'level' => ILogger::DEBUG, + \OC::$server->get(LoggerInterface::class)->debug('Exception while scanning file "' . $child . '"', [ 'app' => 'core', + 'exception' => $ex, ]); $exceptionOccurred = true; } catch (\OCP\Lock\LockedException $e) { diff --git a/lib/private/Files/Mount/MountPoint.php b/lib/private/Files/Mount/MountPoint.php index d598355dbae..49f7e560ad3 100644 --- a/lib/private/Files/Mount/MountPoint.php +++ b/lib/private/Files/Mount/MountPoint.php @@ -35,7 +35,7 @@ use OC\Files\Storage\Storage; use OC\Files\Storage\StorageFactory; use OCP\Files\Mount\IMountPoint; use OCP\Files\Storage\IStorageFactory; -use OCP\ILogger; +use Psr\Log\LoggerInterface; class MountPoint implements IMountPoint { /** @@ -173,12 +173,12 @@ class MountPoint implements IMountPoint { // the root storage could not be initialized, show the user! throw new \Exception('The root storage could not be initialized. Please contact your local administrator.', $exception->getCode(), $exception); } else { - \OC::$server->getLogger()->logException($exception, ['level' => ILogger::ERROR]); + \OC::$server->get(LoggerInterface::class)->error($exception->getMessage(), ['exception' => $exception]); } return; } } else { - \OCP\Util::writeLog('core', 'storage backend ' . $this->class . ' not found', ILogger::ERROR); + \OC::$server->get(LoggerInterface::class)->error('Storage backend ' . $this->class . ' not found', ['app' => 'core']); $this->invalidStorage = true; return; } diff --git a/lib/private/Files/Mount/ObjectHomeMountProvider.php b/lib/private/Files/Mount/ObjectHomeMountProvider.php index 6a8a7d1f2fb..77912adfd34 100644 --- a/lib/private/Files/Mount/ObjectHomeMountProvider.php +++ b/lib/private/Files/Mount/ObjectHomeMountProvider.php @@ -27,8 +27,8 @@ namespace OC\Files\Mount; use OCP\Files\Config\IHomeMountProvider; use OCP\Files\Storage\IStorageFactory; use OCP\IConfig; -use OCP\ILogger; use OCP\IUser; +use Psr\Log\LoggerInterface; /** * Mount provider for object store home storages @@ -80,7 +80,7 @@ class ObjectHomeMountProvider implements IHomeMountProvider { // sanity checks if (empty($config['class'])) { - \OCP\Util::writeLog('files', 'No class given for objectstore', ILogger::ERROR); + \OC::$server->get(LoggerInterface::class)->error('No class given for objectstore', ['app' => 'files']); } if (!isset($config['arguments'])) { $config['arguments'] = []; @@ -105,7 +105,7 @@ class ObjectHomeMountProvider implements IHomeMountProvider { // sanity checks if (empty($config['class'])) { - \OCP\Util::writeLog('files', 'No class given for objectstore', ILogger::ERROR); + \OC::$server->get(LoggerInterface::class)->error('No class given for objectstore', ['app' => 'files']); } if (!isset($config['arguments'])) { $config['arguments'] = []; diff --git a/lib/private/Files/ObjectStore/S3ConnectionTrait.php b/lib/private/Files/ObjectStore/S3ConnectionTrait.php index d6f42c455b4..c3836749c6d 100644 --- a/lib/private/Files/ObjectStore/S3ConnectionTrait.php +++ b/lib/private/Files/ObjectStore/S3ConnectionTrait.php @@ -39,7 +39,7 @@ use Aws\S3\S3Client; use GuzzleHttp\Promise; use GuzzleHttp\Promise\RejectedPromise; use OCP\ICertificateManager; -use OCP\ILogger; +use Psr\Log\LoggerInterface; trait S3ConnectionTrait { /** @var array */ @@ -150,13 +150,13 @@ trait S3ConnectionTrait { $this->connection = new S3Client($options); if (!$this->connection::isBucketDnsCompatible($this->bucket)) { - $logger = \OC::$server->getLogger(); + $logger = \OC::$server->get(LoggerInterface::class); $logger->debug('Bucket "' . $this->bucket . '" This bucket name is not dns compatible, it may contain invalid characters.', ['app' => 'objectstore']); } if ($this->params['verify_bucket_exists'] && !$this->connection->doesBucketExist($this->bucket)) { - $logger = \OC::$server->getLogger(); + $logger = \OC::$server->get(LoggerInterface::class); try { $logger->info('Bucket "' . $this->bucket . '" does not exist - creating it.', ['app' => 'objectstore']); if (!$this->connection::isBucketDnsCompatible($this->bucket)) { @@ -165,9 +165,8 @@ trait S3ConnectionTrait { $this->connection->createBucket(['Bucket' => $this->bucket]); $this->testTimeout(); } catch (S3Exception $e) { - $logger->logException($e, [ - 'message' => 'Invalid remote storage.', - 'level' => ILogger::DEBUG, + $logger->debug('Invalid remote storage.', [ + 'exception' => $e, 'app' => 'objectstore', ]); throw new \Exception('Creation of bucket "' . $this->bucket . '" failed. ' . $e->getMessage()); diff --git a/lib/private/Files/View.php b/lib/private/Files/View.php index c209c8594f7..2b6732e2ba0 100644 --- a/lib/private/Files/View.php +++ b/lib/private/Files/View.php @@ -64,10 +64,10 @@ use OCP\Files\Mount\IMountPoint; use OCP\Files\NotFoundException; use OCP\Files\ReservedWordException; use OCP\Files\Storage\IStorage; -use OCP\ILogger; use OCP\IUser; use OCP\Lock\ILockingProvider; use OCP\Lock\LockedException; +use Psr\Log\LoggerInterface; /** * Class to provide access to ownCloud filesystem via a "view", and methods for @@ -101,8 +101,7 @@ class View { /** @var \OC\User\Manager */ private $userManager; - /** @var \OCP\ILogger */ - private $logger; + private LoggerInterface $logger; private DisplayNameCache $displayNameCache; @@ -123,7 +122,7 @@ class View { $this->lockingEnabled = !($this->lockingProvider instanceof \OC\Lock\NoopLockingProvider); $this->userManager = \OC::$server->getUserManager(); $this->displayNameCache = \OC::$server->get(DisplayNameCache::class); - $this->logger = \OC::$server->getLogger(); + $this->logger = \OC::$server->get(LoggerInterface::class); } public function getAbsolutePath($path = '/') { @@ -579,7 +578,7 @@ class View { try { $result = $this->basicOperation('touch', $path, $hooks, $mtime); } catch (\Exception $e) { - $this->logger->logException($e, ['level' => ILogger::INFO, 'message' => 'Error while setting modified time']); + $this->logger->info('Error while setting modified time', ['app' => 'core', 'exception' => $e]); $result = false; } if (!$result) { @@ -1000,11 +999,11 @@ class View { $hooks[] = 'write'; break; default: - \OCP\Util::writeLog('core', 'invalid mode (' . $mode . ') for ' . $path, ILogger::ERROR); + $this->logger->error('invalid mode (' . $mode . ') for ' . $path, ['app' => 'core']); } if ($mode !== 'r' && $mode !== 'w') { - \OC::$server->getLogger()->info('Trying to open a file with a mode other than "r" or "w" can cause severe performance issues with some backends'); + $this->logger->info('Trying to open a file with a mode other than "r" or "w" can cause severe performance issues with some backends', ['app' => 'core']); } return $this->basicOperation('fopen', $path, $hooks, $mode); @@ -1418,7 +1417,7 @@ class View { return $info; } else { - \OC::$server->getLogger()->warning('Storage not valid for mountpoint: ' . $mount->getMountPoint()); + $this->logger->warning('Storage not valid for mountpoint: ' . $mount->getMountPoint(), ['app' => 'core']); } return false; @@ -1502,10 +1501,9 @@ class View { continue; } catch (\Exception $e) { // sometimes when the storage is not available it can be any exception - \OC::$server->getLogger()->logException($e, [ - 'message' => 'Exception while scanning storage "' . $subStorage->getId() . '"', - 'level' => ILogger::ERROR, - 'app' => 'lib', + $this->logger->error('Exception while scanning storage "' . $subStorage->getId() . '"', [ + 'exception' => $e, + 'app' => 'core', ]); continue; } @@ -1816,9 +1814,9 @@ class View { ); if (count($shares) > 0) { - \OCP\Util::writeLog('files', + $this->logger->debug( 'It is not allowed to move one mount point into a shared folder', - ILogger::DEBUG); + ['app' => 'files']); return false; } @@ -2146,9 +2144,9 @@ class View { // "$user", "files", "path/to/dir" if (!isset($parts[1]) || $parts[1] !== 'files') { $this->logger->error( - '$absolutePath must be relative to "files", value is "%s"', + '$absolutePath must be relative to "files", value is "{absolutePath}"', [ - $absolutePath + 'absolutePath' => $absolutePath, ] ); throw new \InvalidArgumentException('$absolutePath must be relative to "files"'); diff --git a/lib/private/Installer.php b/lib/private/Installer.php index 95143656295..86d933b6fbd 100644 --- a/lib/private/Installer.php +++ b/lib/private/Installer.php @@ -51,7 +51,6 @@ use OC_Helper; use OCP\HintException; use OCP\Http\Client\IClientService; use OCP\IConfig; -use OCP\ILogger; use OCP\ITempManager; use phpseclib\File\X509; use Psr\Log\LoggerInterface; @@ -501,7 +500,7 @@ class Installer { OC_Helper::rmdirr($appDir); return true; } else { - \OCP\Util::writeLog('core', 'can\'t remove app '.$appId.'. It is not installed.', ILogger::ERROR); + $this->logger->error('can\'t remove app '.$appId.'. It is not installed.'); return false; } diff --git a/lib/private/NaturalSort.php b/lib/private/NaturalSort.php index d38c4622796..976db4e7803 100644 --- a/lib/private/NaturalSort.php +++ b/lib/private/NaturalSort.php @@ -26,7 +26,7 @@ */ namespace OC; -use OCP\ILogger; +use Psr\Log\LoggerInterface; class NaturalSort { private static $instance; @@ -42,7 +42,7 @@ class NaturalSort { // or inject an instance of \OC\NaturalSort_DefaultCollator to force using Owncloud's default collator if (isset($injectedCollator)) { $this->collator = $injectedCollator; - \OCP\Util::writeLog('core', 'forced use of '.get_class($injectedCollator), ILogger::DEBUG); + \OC::$server->get(LoggerInterface::class)->debug('forced use of '.get_class($injectedCollator)); } } diff --git a/lib/private/Preview/Office.php b/lib/private/Preview/Office.php index b16544b3b23..570988aa684 100644 --- a/lib/private/Preview/Office.php +++ b/lib/private/Preview/Office.php @@ -31,7 +31,7 @@ namespace OC\Preview; use OCP\Files\File; use OCP\Files\FileInfo; use OCP\IImage; -use OCP\ILogger; +use Psr\Log\LoggerInterface; abstract class Office extends ProviderV2 { /** @@ -76,8 +76,8 @@ abstract class Office extends ProviderV2 { } catch (\Exception $e) { $this->cleanTmpFiles(); unlink($pngPreview); - \OC::$server->getLogger()->logException($e, [ - 'level' => ILogger::ERROR, + \OC::$server->get(LoggerInterface::class)->error($e->getMessage(), [ + 'exception' => $e, 'app' => 'core', ]); return null; diff --git a/lib/private/Preview/SVG.php b/lib/private/Preview/SVG.php index 690a6b50ffe..a4ce4899c43 100644 --- a/lib/private/Preview/SVG.php +++ b/lib/private/Preview/SVG.php @@ -29,7 +29,7 @@ namespace OC\Preview; use OCP\Files\File; use OCP\IImage; -use OCP\ILogger; +use Psr\Log\LoggerInterface; class SVG extends ProviderV2 { /** @@ -60,8 +60,8 @@ class SVG extends ProviderV2 { $svg->readImageBlob($content); $svg->setImageFormat('png32'); } catch (\Exception $e) { - \OC::$server->getLogger()->logException($e, [ - 'level' => ILogger::ERROR, + \OC::$server->get(LoggerInterface::class)->error($e->getMessage(), [ + 'exception' => $e, 'app' => 'core', ]); return null; diff --git a/lib/private/Share/Share.php b/lib/private/Share/Share.php index 47b09982f3a..9018f35ac2a 100644 --- a/lib/private/Share/Share.php +++ b/lib/private/Share/Share.php @@ -35,8 +35,8 @@ namespace OC\Share; use OCP\DB\QueryBuilder\IQueryBuilder; -use OCP\ILogger; use OCP\Share\IShare; +use Psr\Log\LoggerInterface; /** * This class provides the ability for apps to share their content between users. @@ -80,10 +80,10 @@ class Share extends Constants { ]; return true; } - \OCP\Util::writeLog('OCP\Share', + \OC::$server->get(LoggerInterface::class)->warning( 'Sharing backend '.$class.' not registered, '.self::$backendTypes[$itemType]['class'] .' is already registered for '.$itemType, - ILogger::WARN); + ['app' => 'OCP\Share']); } return false; } @@ -256,6 +256,7 @@ class Share extends Constants { */ public static function getBackend($itemType) { $l = \OC::$server->getL10N('lib'); + $logger = \OC::$server->get(LoggerInterface::class); if (isset(self::$backends[$itemType])) { return self::$backends[$itemType]; } elseif (isset(self::$backendTypes[$itemType]['class'])) { @@ -265,20 +266,20 @@ class Share extends Constants { if (!(self::$backends[$itemType] instanceof \OCP\Share_Backend)) { $message = 'Sharing backend %s must implement the interface OCP\Share_Backend'; $message_t = $l->t('Sharing backend %s must implement the interface OCP\Share_Backend', [$class]); - \OCP\Util::writeLog('OCP\Share', sprintf($message, $class), ILogger::ERROR); + $logger->error(sprintf($message, $class), ['app' => 'OCP\Share']); throw new \Exception($message_t); } return self::$backends[$itemType]; } else { $message = 'Sharing backend %s not found'; $message_t = $l->t('Sharing backend %s not found', [$class]); - \OCP\Util::writeLog('OCP\Share', sprintf($message, $class), ILogger::ERROR); + $logger->error(sprintf($message, $class), ['app' => 'OCP\Share']); throw new \Exception($message_t); } } $message = 'Sharing backend for %s not found'; $message_t = $l->t('Sharing backend for %s not found', [$itemType]); - \OCP\Util::writeLog('OCP\Share', sprintf($message, $itemType), ILogger::ERROR); + $logger->error(sprintf($message, $itemType), ['app' => 'OCP\Share']); throw new \Exception($message_t); } @@ -482,9 +483,9 @@ class Share extends Constants { $query = \OC_DB::prepare('SELECT '.$select.' FROM `*PREFIX*share` '.$where, $queryLimit); $result = $query->execute($queryArgs); if ($result === false) { - \OCP\Util::writeLog('OCP\Share', + \OC::$server->get(LoggerInterface::class)->error( \OC_DB::getErrorMessage() . ', select=' . $select . ' where=', - ILogger::ERROR); + ['app' => 'OCP\Share']); } $items = []; $targets = []; @@ -552,9 +553,10 @@ class Share extends Constants { $parentResult->closeCursor(); if ($parentRow === false) { - \OCP\Util::writeLog('OCP\Share', 'Can\'t select parent: ' . + \OC::$server->get(LoggerInterface::class)->error( + 'Can\'t select parent: ' . \OC_DB::getErrorMessage() . ', select=' . $select . ' where=' . $where, - ILogger::ERROR); + ['app' => 'OCP\Share']); } else { $tmpPath = $parentRow['file_target']; // find the right position where the row path continues from the target path diff --git a/lib/private/Support/CrashReport/Registry.php b/lib/private/Support/CrashReport/Registry.php index 96796d6370f..472f39c2884 100644 --- a/lib/private/Support/CrashReport/Registry.php +++ b/lib/private/Support/CrashReport/Registry.php @@ -28,12 +28,12 @@ namespace OC\Support\CrashReport; use Exception; use OCP\AppFramework\QueryException; -use OCP\ILogger; use OCP\IServerContainer; use OCP\Support\CrashReport\ICollectBreadcrumbs; use OCP\Support\CrashReport\IMessageReporter; use OCP\Support\CrashReport\IRegistry; use OCP\Support\CrashReport\IReporter; +use Psr\Log\LoggerInterface; use Throwable; use function array_shift; @@ -48,9 +48,6 @@ class Registry implements IRegistry { /** @var IServerContainer */ private $serverContainer; - /** @var ILogger */ - private $logger; - public function __construct(IServerContainer $serverContainer) { $this->serverContainer = $serverContainer; } @@ -129,9 +126,8 @@ class Registry implements IRegistry { * There is a circular dependency between the logger and the registry, so * we can not inject it. Thus the static call. */ - \OC::$server->getLogger()->logException($e, [ - 'message' => 'Could not load lazy crash reporter: ' . $e->getMessage(), - 'level' => ILogger::FATAL, + \OC::$server->get(LoggerInterface::class)->critical('Could not load lazy crash reporter: ' . $e->getMessage(), [ + 'exception' => $e, ]); } /** @@ -145,9 +141,8 @@ class Registry implements IRegistry { * There is a circular dependency between the logger and the registry, so * we can not inject it. Thus the static call. */ - \OC::$server->getLogger()->logException($e, [ - 'message' => 'Could not register lazy crash reporter: ' . $e->getMessage(), - 'level' => ILogger::FATAL, + \OC::$server->get(LoggerInterface::class)->critical('Could not register lazy crash reporter: ' . $e->getMessage(), [ + 'exception' => $e, ]); } } -- 2.39.5