From a67a46e47bbc4dba0dd89378334ea462433b3495 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Guillaume=20Perr=C3=A9al?= <guillaume.perreal@irstea.fr>
Date: Thu, 22 Jan 2015 10:13:56 +0100
Subject: [PATCH] UploadedFileRepository: ajout de logs.

---
 Entity/Repository/UploadedFileRepository.php | 21 +++++++++++++++++++-
 Resources/config/services.yml                |  5 ++++-
 2 files changed, 24 insertions(+), 2 deletions(-)

diff --git a/Entity/Repository/UploadedFileRepository.php b/Entity/Repository/UploadedFileRepository.php
index fd29ab72..79fe3b1c 100644
--- a/Entity/Repository/UploadedFileRepository.php
+++ b/Entity/Repository/UploadedFileRepository.php
@@ -11,6 +11,7 @@ use Doctrine\ORM\EntityRepository;
 use Gaufrette\Filesystem;
 use Irstea\FileUploadBundle\Entity\UploadedFile;
 use Irstea\FileUploadBundle\Service\FileManagerInterface;
+use Psr\Log\LogLevel;
 
 /**
  * Description of UploadedFileRepository
@@ -19,8 +20,9 @@ use Irstea\FileUploadBundle\Service\FileManagerInterface;
  */
 class UploadedFileRepository extends EntityRepository implements FileManagerInterface
 {
+    use \Psr\Log\LoggerAwareTrait;
+
     /**
-     *
      * @var Filesystem
      */
     protected $filesystem;
@@ -55,6 +57,8 @@ class UploadedFileRepository extends EntityRepository implements FileManagerInte
         $this->_em->persist($file);
         $this->_em->flush();
 
+        $this->log(LogLevel::INFO, 'File created', ['file' => $file]);
+
         return $file;
     }
 
@@ -62,10 +66,25 @@ class UploadedFileRepository extends EntityRepository implements FileManagerInte
     {
         $this->_em->remove($file);
         $this->filesystem->delete($file->getPath());
+
+        $this->log(LogLevel::INFO, 'File deleted', ['file' => $file]);
     }
 
     public function get($id)
     {
         return $this->findById($id);
     }
+
+    /**
+     *
+     * @param string $level
+     * @param string $message
+     * @param array $context
+     */
+    protected function log($level, $message, array $context = [])
+    {
+        if(null !== $this->logger) {
+            $this->logger->log($level, $message, $context);
+        }
+    }
 }
diff --git a/Resources/config/services.yml b/Resources/config/services.yml
index a8761131..4d522fcb 100644
--- a/Resources/config/services.yml
+++ b/Resources/config/services.yml
@@ -16,7 +16,10 @@ services:
         arguments:
             - %irstea_file_upload.entity%
         calls:
-            - [ setFilesystem, [ @?irstea_file_upload.filesystem ] ]
+            - [ setFilesystem, [ @irstea_file_upload.filesystem ] ]
+            - [ setLogger, [ @logger ] ]
+        tags:
+            - { name: monolog.logger, channel: irstea_file_upload }
 
     # Le contrôleur qui gère les uploads
     irstea_file_upload.upload_controller:
-- 
GitLab