HEX
Server: LiteSpeed
System: Linux d8 4.18.0-553.121.1.lve.el8.x86_64 #1 SMP Thu Apr 30 16:40:41 UTC 2026 x86_64
User: wbwebdes (3015)
PHP: 8.1.31
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: /home/wbwebdes/domains/mailing.wb-cloud.nl/public_html/admin/plugins/Common/UniqueLogger.php
<?php
/*
 * CommonPlugin for phplist
 *
 * This file is a part of CommonPlugin.
 *
 * @category  phplist
 * @package   CommonPlugin
 * @author    Duncan Cameron
 * @copyright 2011-2023 Duncan Cameron
 * @license   http://www.gnu.org/licenses/gpl.html GNU General Public License, Version 3
 */

/*
 * This class wraps a Logger in order to log a message only once within a session.
 */

namespace phpList\plugin\Common;

use Psr\Log\LoggerInterface;
use Psr\Log\LoggerTrait;

class UniqueLogger implements LoggerInterface
{
    use LoggerTrait;

    private $logger;

    public function __construct($logger)
    {
        $this->logger = $logger;
    }

    /**
     * Extends the parent method by ensuring that a message is logged only once within a session.
     *
     * @param string $level
     * @param string $message
     * @param array  $context
     */
    public function log($level, $message, array $context = array())
    {
        if (!isset($_SESSION[__CLASS__])) {
            $_SESSION[__CLASS__] = [];
        }
        $key = md5($message);

        if (!isset($_SESSION[__CLASS__][$key])) {
            $this->logger->log($level, $message, $context);
            $_SESSION[__CLASS__][$key] = $message;
        }
    }
}