/var/www/html_us/wp-content/plugins/elementor/core/logger/loggers/base.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
<?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_logLog_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$messageself::LEVEL_INFO$args );
    }

    public function 
notice$message$args = [] ) {
        
$this->log$messageself::LEVEL_NOTICE$args );
    }

    public function 
warning$message$args = [] ) {
        
$this->log$messageself::LEVEL_WARNING$args );
    }

    public function 
error$message$args = [] ) {
        
$this->log$messageself::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;
    }
}