[FEATURE] Add SQL Logging to AdminPanel
[Packages/TYPO3.CMS.git] / typo3 / sysext / adminpanel / Classes / Log / InMemoryLogWriter.php
index 1617a06..8e17017 100644 (file)
@@ -16,6 +16,7 @@ namespace TYPO3\CMS\Adminpanel\Log;
  * The TYPO3 project - inspiring people to share!
  */
 
+use TYPO3\CMS\Adminpanel\Utility\MemoryUtility;
 use TYPO3\CMS\Core\Log\LogLevel;
 use TYPO3\CMS\Core\Log\LogRecord;
 use TYPO3\CMS\Core\Log\Writer\AbstractWriter;
@@ -29,8 +30,6 @@ class InMemoryLogWriter extends AbstractWriter
 {
     public static $log = [];
 
-    private const MINIMAL_PERCENT_OF_FREE_MEMORY = 0.30;
-
     private static $memoryLock = false;
 
     /**
@@ -48,7 +47,7 @@ class InMemoryLogWriter extends AbstractWriter
         }
 
         // Guard: Memory Usage
-        if (!self::$memoryLock && $this->isMemoryConsumptionTooHigh()) {
+        if (!self::$memoryLock && MemoryUtility::isMemoryConsumptionTooHigh()) {
             $this->lockWriter();
             return $this;
         }
@@ -58,24 +57,6 @@ class InMemoryLogWriter extends AbstractWriter
         return $this;
     }
 
-    /**
-     * Checks memory usage used in current process - this is no guarantee for not running out of memory
-     * but should prevent memory exhaustion due to the InMemoryLogger in most cases.
-     *
-     * The logger will stop logging once the amount of free memory falls below the threshold (see
-     * MINIMAL_PERCENT_OF_FREE_MEMORY const).
-     *
-     * @return bool
-     */
-    protected function isMemoryConsumptionTooHigh(): bool
-    {
-        $iniLimit = ini_get('memory_limit');
-        $memoryLimit = $iniLimit === '-1' ? -1 : GeneralUtility::getBytesFromSizeMeasurement($iniLimit);
-        $freeMemory = $memoryLimit - memory_get_usage(true);
-
-        return $memoryLimit > 0 && $freeMemory < (self::MINIMAL_PERCENT_OF_FREE_MEMORY * $memoryLimit);
-    }
-
     /**
      * Lock writer and add a info message that there may potentially be more entries.
      */