Kaynağa Gözat

Merge branch 'hotfix/V8-6098-vrifier-le-logging-en-prod' into develop

Olivier Massot 1 yıl önce
ebeveyn
işleme
d12659b3b9
2 değiştirilmiş dosya ile 27 ekleme ve 3 silme
  1. 10 3
      config/packages/monolog.yaml
  2. 17 0
      src/Commands/CronCommand.php

+ 10 - 3
config/packages/monolog.yaml

@@ -22,13 +22,19 @@ monolog:
             path: "%kernel.logs_dir%/%env(LOG_FILE_NAME)%.main.log"
             level: debug
             max_files: 3
-            channels: [php, doctrine, http_client, elastica]
+            channels: ['!security', '!doctrine', '!cron', '!event', '!deprecation', '!app']
+#        file_doctrine:
+#            type: rotating_file
+#            path: "%kernel.logs_dir%/%env(LOG_FILE_NAME)%.doctrine.log"
+#            level: debug
+#            max_files: 3
+#            channels: [doctrine]
         file_auth:
             type: rotating_file
             path: "%kernel.logs_dir%/%kernel.environment%.auth.log"
             level: debug
             max_files: 3
-            channels: security
+            channels: [security]
 
         # email en cas d'erreurs critiques, sauf erreurs 404 / 405
         #        critical:
@@ -56,7 +62,7 @@ monolog:
             level: debug
             max_files: 7
             formatter: monolog.formatter.message
-            channels: [cron]
+            channels: ['cron']
 
         # Rapport par mail
         cron_info:
@@ -82,6 +88,7 @@ monolog:
             type:           fingers_crossed
             action_level:   critical
             handler:        cron_critical_deduplicated
+            channels: ['cron']
         cron_critical_deduplicated:
             type: deduplication
             # the time in seconds during which duplicate entries are discarded (default: 60)

+ 17 - 0
src/Commands/CronCommand.php

@@ -6,6 +6,7 @@ use App\Service\Cron\CronjobInterface;
 use App\Service\Cron\UI\ConsoleUI;
 use App\Service\ServiceIterator\CronjobIterator;
 use Monolog\Formatter\LineFormatter;
+use Monolog\Handler\FingersCrossedHandler;
 use Monolog\Handler\RotatingFileHandler;
 use Psr\Log\LoggerInterface;
 use Symfony\Component\Console\Attribute\AsCommand;
@@ -114,6 +115,10 @@ class CronCommand extends Command
         $preview = $input->getOption('preview');
         $jobs = [];
 
+        if ($preview) {
+            $this->disableLoggerEmailHandler();
+        }
+
         if (!array_key_exists($action, self::ACTIONS)) {
             $this->output->writeln($formatter->formatBlock('Error: unrecognized action', 'error'));
 
@@ -251,4 +256,16 @@ class CronCommand extends Command
     {
         $this->configureLoggerFormatter();
     }
+
+    protected function disableLoggerEmailHandler(): void
+    {
+        $handlers = [];
+        /* @noinspection PhpPossiblePolymorphicInvocationInspection @phpstan-ignore-next-line */
+        foreach ($this->logger->getHandlers() as $handler) {
+            if (!$handler instanceof FingersCrossedHandler) {
+                $handlers[] = $handler;
+            }
+        }
+        $this->logger->setHandlers($handlers);  // @phpstan-ignore-line
+    }
 }