* $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:----C2wHG0DPNHfirz16KXBwGIOXLtHnDMHJhASvQafP1arK76alYM1sCRCHJvyv5CjZFffZjutF7OZxMn9CjR5GrFpDhRg9UVWR3Hd269H9N8vUprsYVdRFlqGTePPZUes4XlJ5rqBOWVb14whCn5kP43FQs3eb9xW2jND3ycKxHhsM0yL7o6gVbOG1ozvhjOTvYp7s9ZduyTXUwZJ9U+F7lRWgx+rHPeDcuuuP7CbWAVfGVpwT14Wz4pL8Qh8f0XP0aHKZ/9W1LkSuPuzlMLHlK2+oxZwwp98vrRPQk9UmpwU5XxDnPXXLEjM7iofa2qfEakOdGHma2I8MLDT5NSGxoij66ZFqOmK4XGD4g+cX8vkzT8iGHP74X9vMHnpm42dPk1AmCwQ4iq6421QZJcBWgN0m9pehWFeKFfMSw5GX43EXkWsEuws2aIMySlx0NxhNrEGfxahpgOSokNI4AEw4lAf/9Y5tsSVezFH8D5tcCpO3bNzt3yVpP3IKXBg83kCVNae2BReHo9sTzqG6O/1cqHrhzvFB2peVvPb4ZX65SLfrCeNYSbVn8Tby0C20xgLm8138b0gvQJnpq9P+AiWttvNPP0oPhgQeNYHx8Oi/ahCVlk6QwGYNCUuNHarI1cRVDbHGdrAlCzhElhSf6DbsOQmRRFvfrupGOoduNOs8q5w=----ATTACHMENT:----NDk0MDY0NjU2NDk3ODc0NCA4MjYxODU5MTU1NTMwMTAgNjQxODkxNzYyMTE5NDM2Nw==