Logger::clearLog()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 3
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 5
rs 10
1
<?php
2
3
namespace consoleLogger;
4
5
use Psr\Log\AbstractLogger;
6
7
class Logger extends AbstractLogger
8
{
9
    private function formatMessage($message, $logLevel, $context)
10
    {
11
        $message          = str_replace("'", "\'", $message);
12
        $formattedMessage = '[' . date('Y-m-d H:i:s') . ']';
13
        $formattedMessage = $formattedMessage . ' ' . strtoupper($logLevel) . ': ';
14
        $formattedMessage = $formattedMessage . 'Message: ' . $message;
15
        if (!empty($context)) {
16
            $formattedMessage = $formattedMessage . ', Context: ' . json_encode($context);
17
        }
18
        return $formattedMessage;
19
    }
20
21
    public function log($logLevel, $message, array $context = [])
22
    {
23
        $consoleFunctionMap = [
24
            'emergency' => 'error',
25
            'alert'     => 'warn',
26
            'critical'  => 'error',
27
            'error'     => 'error',
28
            'warning'   => 'warn',
29
            'notice'    => 'log',
30
            'info'      => 'info',
31
            'debug'     => 'debug',
32
        ];
33
        $message = $this->formatMessage($message, $logLevel, $context);
34
        echo "<script>";
35
        echo sprintf("console.%s('%s');", $consoleFunctionMap[$logLevel], $message);
36
        echo "</script>";
37
    }
38
39
    public function clearLog()
40
    {
41
        echo "<script>";
42
        echo "console.clear();";
43
        echo "</script>";
44
    }
45
46
    public function group($groupLabel)
47
    {
48
        $groupLabel = str_replace("'", "\'", $groupLabel);
49
        echo "<script>";
50
        echo sprintf("console.group('%s');", $groupLabel);
51
        echo "</script>";
52
    }
53
54
    public function groupEnd()
55
    {
56
        echo "<script>";
57
        echo "console.groupEnd();";
58
        echo "</script>";
59
    }
60
}
61