File tree Expand file tree Collapse file tree 3 files changed +62
-1
lines changed Expand file tree Collapse file tree 3 files changed +62
-1
lines changed Original file line number Diff line number Diff line change 18
18
<code ><![CDATA[ isMasterRequest]]> </code >
19
19
</UndefinedMethod >
20
20
</file >
21
+ <file src =" src/Monolog/LogsHandler.php" >
22
+ <InvalidParamDefault >
23
+ <code ><![CDATA[ value-of<MonologLevel::VALUES>|value-of<MonologLevel::NAMES>|MonologLevel|PsrLogLevel::*]]> </code >
24
+ </InvalidParamDefault >
25
+ <UndefinedClass >
26
+ <code ><![CDATA[ value-of<MonologLevel::VALUES>|value-of<MonologLevel::NAMES>|MonologLevel|PsrLogLevel::*]]> </code >
27
+ </UndefinedClass >
28
+ <UndefinedDocblockClass >
29
+ <code ><![CDATA[ value-of<MonologLevel::VALUES>|value-of<MonologLevel::NAMES>|MonologLevel|PsrLogLevel::*]]> </code >
30
+ </UndefinedDocblockClass >
31
+ <UnresolvableConstant >
32
+ <code ><![CDATA[ value-of<MonologLevel::VALUES>|value-of<MonologLevel::NAMES>|MonologLevel|PsrLogLevel::*]]> </code >
33
+ </UnresolvableConstant >
34
+ </file >
21
35
<file src =" src/Tracing/Cache/TraceableCacheAdapterTrait.php" >
22
36
<LessSpecificImplementedReturnType >
23
37
<code ><![CDATA[ iterable]]> </code >
Original file line number Diff line number Diff line change 4
4
5
5
namespace Sentry \SentryBundle \Monolog ;
6
6
7
+ use Monolog \Level as MonologLevel ;
7
8
use Monolog \Logger as MonologLogger ;
8
9
use Monolog \LogRecord ;
10
+ use Psr \Log \LogLevel as PsrLogLevel ;
9
11
use Sentry \Monolog \CompatibilityLogLevelTrait ;
10
12
use Sentry \Monolog \LogsHandler as BaseLogsHandler ;
11
13
@@ -18,8 +20,17 @@ class LogsHandler extends BaseLogsHandler
18
20
{
19
21
use CompatibilityLogLevelTrait;
20
22
21
- public function __construct (int $ level = MonologLogger::DEBUG , bool $ bubble = true )
23
+ /**
24
+ * @param int|string|MonologLevel|PsrLogLevel::* $level
25
+ *
26
+ * @phpstan-param value-of<MonologLevel::VALUES>|value-of<MonologLevel::NAMES>|MonologLevel|PsrLogLevel::* $level
27
+ */
28
+ public function __construct ($ level = MonologLogger::DEBUG , bool $ bubble = true )
22
29
{
30
+ $ level = MonologLogger::toMonologLevel ($ level );
31
+ if ($ level instanceof MonologLevel) { // Monolog >= 3
32
+ $ level = $ level ->value ;
33
+ }
23
34
$ logLevel = self ::getSentryLogLevelFromMonologLevel ($ level );
24
35
parent ::__construct ($ logLevel , $ bubble );
25
36
}
Original file line number Diff line number Diff line change 4
4
5
5
namespace Sentry \SentryBundle \Tests \Monolog ;
6
6
7
+ use Monolog \Level as MonologLevel ;
7
8
use Monolog \Logger as MonologLogger ;
8
9
use PHPUnit \Framework \TestCase ;
10
+ use Psr \Log \LogLevel as PsrLogLevel ;
9
11
use Sentry \SentryBundle \Monolog \LogsHandler ;
10
12
11
13
final class LogsHandlerTest extends TestCase
@@ -48,4 +50,38 @@ public function testHandleReturnsTrueAboveThresholdWhenBubbleFalse(): void
48
50
49
51
$ this ->assertTrue ($ handler ->handle ($ record ));
50
52
}
53
+
54
+ /**
55
+ * @dataProvider levelProvider
56
+ *
57
+ * @param int|string|MonologLevel $level
58
+ *
59
+ * @phpstan-param value-of<MonologLevel::VALUES>|value-of<MonologLevel::NAMES>|MonologLevel|PsrLogLevel::* $level
60
+ */
61
+ public function testHandlerAcceptsVariousTypesAsLevel ($ level ): void
62
+ {
63
+ $ handler = new LogsHandler ($ level , false );
64
+ $ record = [
65
+ 'level ' => MonologLogger::WARNING ,
66
+ 'message ' => 'msg ' ,
67
+ 'context ' => [],
68
+ 'extra ' => [],
69
+ ];
70
+
71
+ $ this ->assertTrue ($ handler ->handle ($ record ));
72
+ }
73
+
74
+ /**
75
+ * @return iterable<array{0: int|string|MonologLevel}>
76
+ */
77
+ public static function levelProvider (): iterable
78
+ {
79
+ yield [MonologLogger::DEBUG ];
80
+ yield ['DEBUG ' ];
81
+ yield [PsrLogLevel::DEBUG ];
82
+
83
+ if (class_exists (MonologLevel::class)) {
84
+ yield [MonologLevel::Debug];
85
+ }
86
+ }
51
87
}
You can’t perform that action at this time.
0 commit comments