Completed
Push — master ( 274f93...c4e02a )
by Alexander
12s queued 10s
created

LogTarget::setLogger()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 1
c 1
b 0
f 0
dl 0
loc 3
rs 10
cc 1
nc 1
nop 1
1
<?php
2
namespace Yiisoft\Profiler;
3
4
use Psr\Log\LoggerInterface;
5
use Psr\Log\LogLevel;
6
7
/**
8
 * LogTarget saves profiling messages as a log messages.
9
 *
10
 * Application configuration example:
11
 *
12
 * ```php
13
 * return [
14
 *     Yiisoft\Profiler\Profiler::class => [
15
 *         'targets' => [
16
 *             [
17
 *                 '__class' => Yiisoft\Profiler\LogTarget::class,
18
 *             ],
19
 *         ],
20
 *         // ...
21
 *     ],
22
 *     // ...
23
 * ];
24
 * ```
25
 */
26
class LogTarget extends Target
27
{
28
    /**
29
     * @var LoggerInterface logger to be used for message export.
30
     */
31
    private $logger;
32
    /**
33
     * @var string log level to be used for messages export.
34
     */
35
    private $logLevel;
36
37 2
    public function __construct(LoggerInterface $logger, string $logLevel = LogLevel::DEBUG)
38
    {
39 2
        $this->logger = $logger;
40 2
        $this->logLevel = $logLevel;
41 2
    }
42
43 1
    public function export(array $messages): void
44
    {
45 1
        foreach ($messages as $message) {
46 1
            $message['time'] = $message['beginTime'];
47 1
            $this->logger->log($this->logLevel, $message['token'], $message);
48
        }
49 1
    }
50
}
51