diff --git a/module/VuFind/src/VuFind/Controller/CoverController.php b/module/VuFind/src/VuFind/Controller/CoverController.php
index f0b5b68a743d6ac2e268aa9dd116e7db42be2634..3eb71a792bfe5250917aa898b2703e36e507840a 100644
--- a/module/VuFind/src/VuFind/Controller/CoverController.php
+++ b/module/VuFind/src/VuFind/Controller/CoverController.php
@@ -54,6 +54,7 @@ class CoverController extends AbstractBase
                 ConfigReader::getConfig(),
                 $this->getServiceLocator()->get('CacheManager')->getCacheDir()
             );
+            $this->loader->setLogger(\VuFind\Log\Logger::getInstance());
         }
         return $this->loader;
     }
diff --git a/module/VuFind/src/VuFind/Cover/Loader.php b/module/VuFind/src/VuFind/Cover/Loader.php
index 108efc267fa7caa45ffdcb1033bb26e7a5ac6117..c8b52803e66a46d667c4ed38e4cfc668d81089b0 100644
--- a/module/VuFind/src/VuFind/Cover/Loader.php
+++ b/module/VuFind/src/VuFind/Cover/Loader.php
@@ -28,8 +28,7 @@
  */
 namespace VuFind\Cover;
 use VuFind\Code\ISBN, VuFind\Http\Client as HttpClient,
-    VuFind\Log\Logger, VuFind\Theme\Tools as ThemeTools,
-    ZendService\Amazon\Amazon;
+    VuFind\Theme\Tools as ThemeTools, Zend\Log\Logger, ZendService\Amazon\Amazon;
 
 /**
  * Book Cover Generator
@@ -43,27 +42,76 @@ use VuFind\Code\ISBN, VuFind\Http\Client as HttpClient,
  */
 class Loader
 {
-    // property to hold filename constructed from ISBN
+    /**
+     * filename constructed from ISBN
+     *
+     * @var string
+     */
     protected $localFile = '';
 
-    // property to hold root directory of VuFind
+    /**
+     * valid image sizes to request
+     *
+     * @var array
+     */
     protected $validSizes = array('small', 'medium', 'large');
 
-    // property to hold VuFind configuration settings
+    /**
+     * property to hold VuFind configuration settings
+     *
+     * @var \Zend\Config\Config
+     */
     protected $config;
 
-    // directory to store downloaded images
+    /**
+     * directory to store downloaded images
+     *
+     * @var string
+     */
     protected $baseDir;
 
-    // current user parameters:
+    /**
+     * User ISN parameter
+     *
+     * @var string
+     */
     protected $isn;
+
+    /**
+     * User size parameter
+     *
+     * @var string
+     */
     protected $size;
+
+    /**
+     * User type parameter
+     *
+     * @var string
+     */
     protected $type;
 
-    // properties populated by calling loadImage or loadUnavailable:
+    /**
+     * Property for storing raw image data; may be null if image is unavailable
+     *
+     * @var string
+     */
     protected $image = null;
+
+    /**
+     * Content type of data in $image property
+     *
+     * @var string
+     */
     protected $contentType = null;
 
+    /**
+     * Logger (or false for none)
+     *
+     * @var Logger|bool
+     */
+    protected $logger = false;
+
     /**
      * Constructor
      *
@@ -79,6 +127,32 @@ class Loader
         );
     }
 
+    /**
+     * Set the logger
+     *
+     * @param Logger $logger Logger to use.
+     *
+     * @return void
+     */
+    public function setLogger(Logger $logger)
+    {
+        $this->logger = $logger;
+    }
+
+    /**
+     * Log a debug message.
+     *
+     * @param string $msg Message to log.
+     *
+     * @return void
+     */
+    protected function debug($msg)
+    {
+        if ($this->logger) {
+            $this->logger->debug($msg);
+        }
+    }
+
     /**
      * Get the image data (usually called after loadImage)
      *
@@ -278,7 +352,7 @@ class Loader
 
         // If file defined but does not exist, log error and display default:
         if (!file_exists($noCoverImage) || !is_readable($noCoverImage)) {
-            Logger::getInstance()->debug("Cannot access file: '$noCoverImage'");
+            $this->debug("Cannot access file: '$noCoverImage'");
             return $this->loadDefaultFailImage();
         }
 
@@ -295,7 +369,7 @@ class Loader
         $parts = explode('.', $noCoverImage);
         $fileExtension = strtolower(end($parts));
         if (!array_key_exists($fileExtension, $allowedFileExtensions)) {
-            Logger::getInstance()->debug(
+            $this->debug(
                 "Illegal file-extension '$fileExtension' for image '$noCoverImage'"
             );
             return $this->loadDefaultFailImage();