HEX
Server: nginx/1.24.0
System: Linux VM-8-5-opencloudos 6.6.47-12.oc9.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Sep 24 16:15:42 CST 2024 x86_64
User: www (1000)
PHP: 8.0.26
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: /www/wwwroot/aiwellbore.com/wp-content/plugins/wp-githuber-md/src/Controllers/Monolog.php
<?php
/**
 * Class Monolog
 *
 * @author Terry Lin
 * @link https://terryl.in/
 *
 * @package Githuber
 * @since 1.6.0
 * @version 1.6.0
 */

namespace Githuber\Controller;

/**
 * Class Monolog
 */
class Monolog {

	/**
	 * The Monolog instance.
	 *
	 * @var Logger
	 */
	public static $instance;

	/**
	 * Get the Monolog instance.
	 *
	 * @return Logger
	 */
	public static function get_instance() {

		if ( ! isset( self::$instance ) ) {

			$settings = array(
				'name'  => 'githuber-md',
				'path'  => GITHUBER_PLUGIN_DIR . 'logs/markdown.log',
				'level' => \Monolog\Logger::DEBUG,
			);

			self::$instance = new \Monolog\Logger( $settings['name'] );
			self::$instance->pushHandler( new \Monolog\Handler\StreamHandler( $settings['path'], $settings['level'] ) );

		}
		return self::$instance;
	}

	/**
	 * Record Markdown processing logs for debug propose.
	 *
	 * @param string $message    The log message.
	 * @param array  $addon_data The log data.
	 *
	 * @return void
	 */
	public static function logger( $message, $addon_data = array() ) {

		if ( GITHUBER_DEBUG_MODE ) {
			$trace = debug_backtrace();

			$caller_class  = $trace[1]['class'];
			$caller_method = $trace[1]['function'];

			$caller_class = str_replace( 'Githuber\\', '', $caller_class );
			$caller_class = str_replace( '\\', '/', $caller_class );

			$caller_info = array(
				'class'  => $caller_class,
				'method' => $caller_method,
			);

			$info_data['caller'] = $caller_info;

			if ( ! empty( $addon_data ) ) {
				$info_data['info'] = $addon_data;
			}

			self::get_instance()->info( $message . "\n", $info_data );
		}
	}
}