<?php

namespace MailPoetVendor;

if (!defined('ABSPATH')) exit;


/*
 * This file is part of SwiftMailer.
 * (c) 2004-2009 Chris Corbyn
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
/**
 * Logs to an Array backend.
 *
 * @author Chris Corbyn
 */
class Swift_Plugins_Loggers_ArrayLogger implements \MailPoetVendor\Swift_Plugins_Logger
{
    /**
     * The log contents.
     *
     * @var array
     */
    private $log = [];
    /**
     * Max size of the log.
     *
     * @var int
     */
    private $size = 0;
    /**
     * Create a new ArrayLogger with a maximum of $size entries.
     *
     * @var int
     */
    public function __construct($size = 50)
    {
        $this->size = $size;
    }
    /**
     * Add a log entry.
     *
     * @param string $entry
     */
    public function add($entry)
    {
        $this->log[] = $entry;
        while (\count($this->log) > $this->size) {
            \array_shift($this->log);
        }
    }
    /**
     * Clear the log contents.
     */
    public function clear()
    {
        $this->log = [];
    }
    /**
     * Get this log as a string.
     *
     * @return string
     */
    public function dump()
    {
        return \implode(\PHP_EOL, $this->log);
    }
}
