0xsec Shell
0xSec


Server : LiteSpeed
System : Linux webbox1.ncrdns.net 5.14.0-611.55.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue May 19 15:19:29 EDT 2026 x86_64
User : rahcos ( 1533)
PHP Version : 8.4.23
Disable Function : NONE
Directory :  /home/rahcos/.trash/wp-content/themes/hara/inc/merlin/includes/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //home/rahcos/.trash/wp-content/themes/hara/inc/merlin/includes/class-merlin-logger.php
<?php
/**
 * The logger class, which will abstract the use of the monolog library.
 * More about monolog: https://github.com/Seldaek/monolog
 */

use Monolog\Logger as MonologLogger;
use Monolog\Handler\StreamHandler;

class Merlin_Logger
{
    /**
     * @var object instance of the monolog logger class.
     */
    private $log;


    /**
     * @var string The absolute path to the log file.
     */
    private $log_path;


    /**
     * @var string The name of the logger instance.
     */
    private $logger_name;


    /**
     * The instance *Singleton* of this class
     *
     * @var object
     */
    private static $instance;


    /**
     * Returns the *Singleton* instance of this class.
     *
     * @return object EasyDigitalDownloadsFastspring *Singleton* instance.
     *
     * @codeCoverageIgnore Nothing to test, default PHP singleton functionality.
     */
    public static function get_instance()
    {
        if (null === static::$instance) {
            static::$instance = new static();
        }

        return static::$instance;
    }


    /**
     * Logger constructor.
     *
     * Protected constructor to prevent creating a new instance of the
     * *Singleton* via the `new` operator from outside of this class.
     */
    protected function __construct($log_path = null, $name = 'merlin-logger')
    {
        $this->log_path    = $log_path;
        $this->logger_name = $name;

        if (empty($this->log_path)) {
            $upload_dir = wp_upload_dir();
            $logger_dir = $upload_dir['basedir'] . '/merlin-wp';

            if (! file_exists($logger_dir)) {
                wp_mkdir_p($logger_dir);
            }

            $this->log_path = $logger_dir . '/main.log';
        }

        $this->initialize_logger();
    }


    /**
     * Initialize the monolog logger class.
     */
    private function initialize_logger()
    {
        if (empty($this->log_path) || empty($this->logger_name)) {
            return false;
        }

        $this->log = new MonologLogger($this->logger_name);
        $this->log->pushHandler(new StreamHandler($this->log_path, MonologLogger::DEBUG));
    }


    /**
     * Log message for log level: debug.
     *
     * @param string $message The log message.
     * @param array  $context The log context.
     *
     * @return boolean Whether the record has been processed.
     */
    public function debug($message, $context = array())
    {
        return $this->log->debug($message, $context);
    }

    /**
     * Log message for log level: info.
     *
     * @param string $message The log message.
     * @param array  $context The log context.
     *
     * @return boolean Whether the record has been processed.
     */
    public function info($message, $context = array())
    {
        return $this->log->info($message, $context);
    }


    /**
     * Log message for log level: notice.
     *
     * @param string $message The log message.
     * @param array  $context The log context.
     *
     * @return boolean Whether the record has been processed.
     */
    public function notice($message, $context = array())
    {
        return $this->log->notice($message, $context);
    }


    /**
     * Log message for log level: warning.
     *
     * @param string $message The log message.
     * @param array  $context The log context.
     *
     * @return boolean Whether the record has been processed.
     */
    public function warning($message, $context = array())
    {
        return $this->log->warning($message, $context);
    }


    /**
     * Log message for log level: error.
     *
     * @param string $message The log message.
     * @param array  $context The log context.
     *
     * @return boolean Whether the record has been processed.
     */
    public function error($message, $context = array())
    {
        return $this->log->error($message, $context);
    }


    /**
     * Log message for log level: alert.
     *
     * @param string $message The log message.
     * @param array  $context The log context.
     *
     * @return boolean Whether the record has been processed.
     */
    public function alert($message, $context = array())
    {
        return $this->log->alert($message, $context);
    }


    /**
     * Log message for log level: emergency.
     *
     * @param string $message The log message.
     * @param array  $context The log context.
     *
     * @return boolean Whether the record has been processed.
     */
    public function emergency($message, $context = array())
    {
        return $this->log->emergency($message, $context);
    }


    /**
     * Private clone method to prevent cloning of the instance of the *Singleton* instance.
     *
     * @return void
     */
    private function __clone()
    {
    }


    /**
     * Private unserialize method to prevent unserializing of the *Singleton* instance.
     *
     * @return void
     */
    public function __wakeup()
    {
    }
}

c0oded By c0rpz