forked from cleverage/processuibundle
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathProcessHandler.php
69 lines (57 loc) · 1.88 KB
/
ProcessHandler.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
<?php
declare(strict_types=1);
/*
* This file is part of the CleverAge/UiProcessBundle package.
*
* Copyright (c) Clever-Age
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CleverAge\UiProcessBundle\Monolog\Handler;
use CleverAge\UiProcessBundle\Manager\ProcessExecutionManager;
use Monolog\Handler\StreamHandler;
use Monolog\Level;
use Monolog\LogRecord;
class ProcessHandler extends StreamHandler
{
private Level $reportIncrementLevel = Level::Error;
public function __construct(
private readonly string $directory,
private readonly ProcessExecutionManager $processExecutionManager,
int|string|Level $level = Level::Debug,
) {
parent::__construct($this->directory, $level);
}
/**
* @param 'ALERT'|'Alert'|'alert'|'CRITICAL'|'Critical'|'critical'|'DEBUG'|'Debug'|'debug'|'EMERGENCY'|'Emergency'|'emergency'|'ERROR'|'Error'|'error'|'INFO'|'Info'|'info'|'NOTICE'|'Notice'|'notice'|'WARNING'|'Warning'|'warning' $level
*/
public function setReportIncrementLevel(string $level): void
{
$this->reportIncrementLevel = Level::fromName($level);
}
public function hasFilename(): bool
{
return $this->directory !== $this->url;
}
public function setFilename(string $filename): void
{
$this->url = \sprintf('%s/%s', $this->directory, $filename);
}
public function close(): void
{
$this->url = $this->directory;
parent::close();
}
public function getFilename(): ?string
{
return $this->url;
}
public function write(LogRecord $record): void
{
parent::write($record);
if ($record->level->value >= $this->reportIncrementLevel->value) {
$this->processExecutionManager->increment($record->level->name);
}
}
}