403Webshell
Server IP : 121.121.20.254  /  Your IP : 216.73.216.202
Web Server : Microsoft-IIS/10.0
System : Windows NT WEB-SERVER 10.0 build 20348 (Windows Server 2022) AMD64
User : IUSR ( 0)
PHP Version : 8.3.28
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  C:/inetpub/wwwroot/KnowledgeBase/wp-content/plugins/wpmu-dev-seo/includes/core/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/inetpub/wwwroot/KnowledgeBase/wp-content/plugins/wpmu-dev-seo/includes/core//class-logger.php
<?php

namespace SmartCrawl;

class Logger {

	use Singleton;

	const L_DEBUG = 10;
	const L_INFO = 20;
	const L_NOTICE = 30;
	const L_WARNING = 40;
	const L_ERROR = 50;

	/**
	 * Default logging level
	 *
	 * @var int
	 */
	const L_DEFAULT = 30;

	public static function debug( $message ) {
		return self::get()->log( self::L_DEBUG, $message );
	}

	/**
	 * Logging function
	 *
	 * Checks for log level active and takes
	 * an appropriate action - logs the message
	 * or not.
	 *
	 * @param int    $level   Log level that the message belongs to (see constants).
	 * @param string $message Message to log.
	 *
	 * @return bool|int Operation status, or (int)log level if we're above listening
	 */
	public function log( $level, $message ) {
		if ( ! \smartcrawl_is_switch_active( 'SMARTCRAWL_ENABLE_LOGGING' ) ) {
			return false; // Require explicit logging.
		}
		if ( ! is_numeric( $level ) ) {
			return false;
		}

		$level = (int) $level;
		if ( ! in_array( $level, array_keys( self::get_known_levels() ), true ) ) {
			return false;
		}

		if ( ! $this->is_logging( $level ) ) {
			return $level;
		}

		$file = $this->get_log_file();
		if ( empty( $file ) ) {
			return false;
		}

		$timestamp = date( 'Y-m-d H:i:s' ); // phpcs:ignore

		$line = "[{$timestamp}][{$level}] {$message}\n";

		return \smartcrawl_file_put_contents( $file, $line, FILE_APPEND | LOCK_EX );
	}

	/**
	 * Gets a list of known levels and their brief descriptions
	 *
	 * @return array List of levels and descriptions hash
	 */
	public static function get_known_levels() {
		return array(
			self::L_DEBUG   => __( 'Debug (verbose procedural data)', 'wds' ),
			self::L_INFO    => __( 'Info (verbose informal data)', 'wds' ),
			self::L_NOTICE  => __( 'Notice (attention might be needed)', 'wds' ),
			self::L_WARNING => __( 'Warning (something non-critical went wrong)', 'wds' ),
			self::L_ERROR   => __( 'Error (critical issue)', 'wds' ),
		);
	}

	/**
	 * Check if we're logging this level
	 *
	 * @param int $level Level to check.
	 *
	 * @return bool Logging or not
	 */
	public function is_logging( $level ) {
		$current = self::get_log_level();

		return (int) $level >= $current;
	}

	/**
	 * Gets current logging level
	 *
	 * @return int Current level
	 */
	public static function get_log_level() {
		$level = defined( 'SMARTCRAWL_DEBUG_LOG_LEVEL' ) && is_numeric( SMARTCRAWL_DEBUG_LOG_LEVEL )
			? SMARTCRAWL_DEBUG_LOG_LEVEL
			: self::L_DEFAULT;

		return (int) apply_filters( 'wds-log-level', $level ); // phpcs:ignore
	}

	/**
	 * Gets initialized log file path
	 *
	 * @return string Log file path
	 */
	public function get_log_file() {
		$file = $this->get_log_file_path();

		if ( ! file_exists( $file ) ) {
			$this->create_log();
		}

		return file_exists( $file ) && is_readable( $file )
			? $file
			: false;
	}

	/**
	 * Gets full path to log file
	 *
	 * @return string Log file path
	 */
	public function get_log_file_path() {
		$data = wp_upload_dir();
		if ( empty( $data['basedir'] ) ) {
			return false;
		}

		$file = trailingslashit( $data['basedir'] ) . 'wds-seo-log.php';

		return wp_normalize_path( $file );
	}

	/**
	 * Creates and primes the log file
	 *
	 * @return bool Operation status
	 */
	public function create_log() {
		$file = $this->get_log_file_path();

		if ( file_exists( $file ) && is_writable( $file ) ) {
			return true;
		}

		return \smartcrawl_file_put_contents( $file, "<?php die(); ?>\n" );
	}

	public static function info( $message ) {
		return self::get()->log( self::L_INFO, $message );
	}

	public static function notice( $message ) {
		return self::get()->log( self::L_NOTICE, $message );
	}

	public static function warning( $message ) {
		return self::get()->log( self::L_WARNING, $message );
	}

	public static function error( $message ) {
		return self::get()->log( self::L_ERROR, $message );
	}

	/**
	 * Resets log file by re-creating it
	 *
	 * @return bool Operation status
	 */
	public function reset_log() {
		return $this->remove_log() && $this->create_log();
	}

	/**
	 * Clear log file by removing it
	 *
	 * @return bool Operation status
	 */
	public function remove_log() {
		$file = $this->get_log_file_path();

		if ( file_exists( $file ) && is_writable( $file ) ) {
			return @unlink( $file );  // phpcs:ignore -- We want logger to not make any noise
		}

		return true;
	}

	private function __clone() {
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit