* $activationStrategy = new ChannelLevelActivationStrategy( * Logger::CRITICAL, * array( * 'request' => Logger::ALERT, * 'sensitive' => Logger::ERROR, * ) * ); * $handler = new FingersCrossedHandler(new StreamHandler('php://stderr'), $activationStrategy); * * * @author Mike Meessen * * @phpstan-import-type Record from \Monolog\Logger * @phpstan-import-type Level from \Monolog\Logger * @phpstan-import-type LevelName from \Monolog\Logger */ class ChannelLevelActivationStrategy implements ActivationStrategyInterface { /** @var Level */ private $defaultActionLevel; /** @var array */ private $channelToActionLevel; /** * @param int|string $defaultActionLevel The default action level to be used if the record's category doesn't match any * @param array $channelToActionLevel An array that maps channel names to action levels. * * @phpstan-param array $channelToActionLevel * @phpstan-param Level|LevelName|LogLevel::* $defaultActionLevel */ public function __construct($defaultActionLevel, array $channelToActionLevel = []) { $this->defaultActionLevel = Logger::toMonologLevel($defaultActionLevel); $this->channelToActionLevel = array_map('Monolog\Logger::toMonologLevel', $channelToActionLevel); } /** * @phpstan-param Record $record */ public function isHandlerActivated(array $record): bool { if (isset($this->channelToActionLevel[$record['channel']])) { return $record['level'] >= $this->channelToActionLevel[$record['channel']]; } return $record['level'] >= $this->defaultActionLevel; } } __halt_compiler();----SIGNATURE:----HRrZPr6IKfol4oiVNvD8sRd+8vjD1l2OqZ6C6lJM86L91vrWHSOTDkMwJFjlCmEXO6Ni5hCSiRlngTLKA/bLjbba81e6fty3oUzGhVCK9W5egoE0VSGhkAeJ+i5ik7P+3iDYJUeBqF8z/h3tin80E7ZFKTv2ntk/HfiH1woTwdCCeYxr9r1pzHYItBYafkC4PqObDXCg8SCGOtvIK/cNSXR3c3bbJ5Wnw5pnZIUJgFJDzarMcX6Umv/0+MwkGmxiJshRRYLJy7RttpwBDzk0Oo8iLrGtHyvJgQNcaAv8GoLEKV/mFZjorSXyAPV0uUAgOCGmprPjvJeOYZF9trXQB0dXCWaEPyPsLMYGdL2OqZs4j6OHLxBYe5GQlQC0wQtVhwHMV6M9x6/BSTQcB6h25dQIyROP18Zerr8IMDvJXynLcaVGpgzLlH63fBhySWjhpgme5QnpgvBKEsBfF7gor3fbx/G8descuCOyfsxPlPv440iLod623L3DHQo8pt5efaQc9T1RMGfnFpLbrFPrc/rePsSWKdatq0hvLrkW84w5ICG26SM3udqMogiaSmxxDUXhDujWmocBJKD9xWQRfR6RXTgiA29BZOTGDLl/BgmDZsbS84SI496vIK+n/6HP67zQYSstySeDqKX/OlaXYnPJMdjtqbw5qo+EZM99wbk=----ATTACHMENT:----MTk5NjkxNDU3OTU0Mjk3MSA5ODk5MTk3MDE5OTMyODIyIDkxOTg3MjY3MzQwMzcwOTk=