| Server IP : 109.234.162.214 / Your IP : 216.73.216.112 Web Server : Apache System : Linux servd162214.srv.odns.fr 4.18.0-372.26.1.lve.1.el8.x86_64 #1 SMP Fri Sep 16 14:08:19 EDT 2022 x86_64 User : carpe ( 1178) PHP Version : 8.0.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/thread-self/root/home/carpe/www/space/lbrm3v/ |
Upload File : |
logger-interface.php 0000644 00000002364 15122057046 0010501 0 ustar 00 <?php
namespace Elementor\Core\Logger\Loggers;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
}
interface Logger_Interface {
const LEVEL_INFO = 'info';
const LEVEL_NOTICE = 'notice';
const LEVEL_WARNING = 'warning';
const LEVEL_ERROR = 'error';
const LOG_NAME = 'elementor_log';
/**
* @param string $message
* @param string $type
* @param array $meta
*
* @return void
*/
public function log( $message, $type = self::LEVEL_INFO, $meta = [] );
/**
* @param string $message
* @param array $meta
*
* @return void
*/
public function info( $message, $meta = [] );
/**
* @param string $message
* @param array $meta
*
* @return void
*/
public function notice( $message, $meta = [] );
/**
* @param string $message
* @param array $meta
*
* @return void
*/
public function warning( $message, $meta = [] );
/**
* @param string $message
* @param array $meta
*
* @return void
*/
public function error( $message, $meta = [] );
/**
* @param int $max_entries
* @param bool $table use <td> in format
*
* @return array [ 'key' => [ 'total_count' => int, 'count' => int, 'entries' => Log_Item[] ] ]
*/
public function get_formatted_log_entries( $max_entries, $table = true );
}
base.php 0000644 00000004520 15122057046 0006172 0 ustar 00 <?php
namespace Elementor\Core\Logger\Loggers;
use Elementor\Core\Logger\Items\Base as Log_Item;
use Elementor\Core\Logger\Items\Log_Item_Interface as Log_Item_Interface;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
}
abstract class Base implements Logger_Interface {
abstract protected function save_log( Log_Item_Interface $item );
/**
* @return Log_Item_Interface[]
*/
abstract public function get_log();
public function log( $item, $type = self::LEVEL_INFO, $args = [] ) {
if ( ! $item instanceof Log_Item ) {
$item = $this->create_item( $item, $type, $args );
}
$this->save_log( $item );
}
public function info( $message, $args = [] ) {
$this->log( $message, self::LEVEL_INFO, $args );
}
public function notice( $message, $args = [] ) {
$this->log( $message, self::LEVEL_NOTICE, $args );
}
public function warning( $message, $args = [] ) {
$this->log( $message, self::LEVEL_WARNING, $args );
}
public function error( $message, $args = [] ) {
$this->log( $message, self::LEVEL_ERROR, $args );
}
/**
* @param string $message
* @param string $type
* @param array $args
*
* @return Log_Item_Interface
*/
private function create_item( $message, $type, $args = [] ) {
$args['message'] = $message;
$args['type'] = $type;
$item = new Log_Item( $args );
return $item;
}
public function get_formatted_log_entries( $max_entries, $table = true ) {
$entries = $this->get_log();
if ( empty( $entries ) ) {
return [
'All' => [
'total_count' => 0,
'count' => 0,
'entries' => '',
],
];
}
$sorted_entries = [];
$open_tag = $table ? '<tr><td>' : '';
$close_tab = $table ? '</td></tr>' : PHP_EOL;
$format = $table ? 'html' : 'raw';
foreach ( $entries as $entry ) {
/** @var Log_Item $entry */
$sorted_entries[ $entry->get_name() ][] = $open_tag . $entry->format( $format ) . $close_tab;
}
$formatted_entries = [];
foreach ( $sorted_entries as $key => $sorted_entry ) {
$formatted_entries[ $key ]['total_count'] = count( $sorted_entry );
$formatted_entries[ $key ]['count'] = count( $sorted_entry );
$sorted_entry = array_slice( $sorted_entry, -$max_entries );
$formatted_entries[ $key ]['count'] = count( $sorted_entry );
$formatted_entries[ $key ]['entries'] = implode( $sorted_entry );
}
return $formatted_entries;
}
}
db.php 0000644 00000002006 15122057046 0005642 0 ustar 00 <?php
namespace Elementor\Core\Logger\Loggers;
use Elementor\Core\Logger\Items\Log_Item_Interface as Log_Item;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
}
class Db extends Base {
public function save_log( Log_Item $item ) {
$log = $this->maybe_truncate_log();
$id = $item->get_fingerprint();
if ( empty( $log[ $id ] ) ) {
$log[ $id ] = $item;
}
$log[ $id ]->increase_times( $item );
update_option( self::LOG_NAME, $log, 'no' );
}
public function clear() {
delete_option( self::LOG_NAME );
}
private function maybe_truncate_log() {
/** @var Log_Item[] $log */
$log = $this->get_log();
if ( Log_Item::MAX_LOG_ENTRIES < count( $log ) ) {
$log = array_slice( $log, -Log_Item::MAX_LOG_ENTRIES );
}
return $log;
}
public function get_log() {
// Clear cache.
wp_cache_delete( self::LOG_NAME, 'options' );
$log = get_option( self::LOG_NAME, [] );
// In case the DB log is corrupted.
if ( ! is_array( $log ) ) {
$log = [];
}
return $log;
}
}