MOON
Server: Apache
System: Linux server1.studioinfinity.com.br 2.6.32-954.3.5.lve1.4.90.el6.x86_64 #1 SMP Tue Feb 21 12:26:30 UTC 2023 x86_64
User: artinside (517)
PHP: 7.4.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/artinside/sites.artinside.com.br/mainpro/vendor/aplus/log/src/Loggers/EmailLogger.php
<?php declare(strict_types=1);
/*
 * This file is part of Aplus Framework Log Library.
 *
 * (c) Natan Felles <natanfelles@gmail.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace Framework\Log\Loggers;

use Framework\Log\Log;
use Framework\Log\Logger;
use InvalidArgumentException;

/**
 * Class EmailLogger.
 *
 * @package log
 */
class EmailLogger extends Logger
{
    protected function setDestination(string $destination) : static
    {
        if (!\filter_var($destination, \FILTER_VALIDATE_EMAIL)) {
            throw new InvalidArgumentException('Invalid email destination: ' . $destination);
        }
        $this->destination = $destination;
        return $this;
    }

    protected function makeHeaders(Log $log) : string
    {
        $headers = $this->getConfig()['headers'] ?? [];
        $names = [];
        foreach ($headers as $name => $value) {
            $names[] = \strtolower($name);
        }
        if (!\in_array('subject', $names, true)) {
            $headers['Subject'] = 'Log ' . $log->level->name . ' ' . $log->id;
        }
        $headerLines = [];
        foreach ($headers as $name => $value) {
            $headerLines[] = $name . ': ' . $value;
        }
        return \implode("\r\n", $headerLines);
    }

    protected function write(Log $log) : bool
    {
        return \error_log(
            (string) $log,
            1,
            $this->getDestination(),
            $this->makeHeaders($log)
        );
    }
}