* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Monolog\Processor; /** * Some methods that are common for all memory processors * * @author Rob Jensen */ abstract class MemoryProcessor { /** * @var boolean If true, get the real size of memory allocated from system. Else, only the memory used by emalloc() is reported. */ protected $realUsage; /** * @var boolean If true, then format memory size to human readable string (MB, KB, B depending on size) */ protected $useFormatting; /** * @param boolean $realUsage Set this to true to get the real size of memory allocated from system. * @param boolean $useFormatting If true, then format memory size to human readable string (MB, KB, B depending on size) */ public function __construct($realUsage = true, $useFormatting = true) { $this->realUsage = (boolean) $realUsage; $this->useFormatting = (boolean) $useFormatting; } /** * Formats bytes into a human readable string if $this->useFormatting is true, otherwise return $bytes as is * * @param int $bytes * @return string|int Formatted string if $this->useFormatting is true, otherwise return $bytes as is */ protected function formatBytes($bytes) { $bytes = (int) $bytes; if (!$this->useFormatting) { return $bytes; } if ($bytes > 1024*1024) { return round($bytes/1024/1024, 2).' MB'; } elseif ($bytes > 1024) { return round($bytes/1024, 2).' KB'; } return $bytes . ' B'; } }