* $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:----fQzeydAGCWQwjjcdDsrn3841iaBh1GnUsujeHxFNCDkz2Kb13oiEkmAwr/86y1SgcJ7B+vArYvtD0ArCmEjPraoQJV8dt0XKKiXQO/fyp3ZMy50OHmnW8pHVctQnDtUioH3xdtUDAKqGQDQ+HIPocLFx63LuXbHQwZ2g+QXj0P2nGfyg8Vq+Oz7qTxBkgTLwh0Nh7y10LCi5nk+ew8dDeB2C5nfhCWpTfi+AbKnv/SniwT/8HRADPM4Fs82UBSBH4wOxhZzA4RjcjKgweh5zI02sljVN1y77RKxvSECncLw/1JLEMJmEmsx5M7HFPshcm6ywqThZk+Ur60GALAwmSRTl7l1TkwgNZ1fQOC0FoIJWJe4QsG4FZ2A4XKewIbQjYA8tNnRQ+pTQ8+ef0FQxCsKuB1e00zIm9t852n3R0y8C7ju/laqB4tQop5ZzZEAziVskd/e3DN5omQy0rSoauHqrDq7XeRPrQskdOsX7gSAgPbr11S5kK5vH7ADRkKym4Azw1IL3/ziOXEVm/vOF7HuNYkdTnx5bb0diwUD7i8po5Mj+mza9R3woKgf8JJZRQjkGSOB4Gd9ghfkLtU5aIfu/YJZgpm19iUjgyUPzAjXCJP78yF36gcD8God2+Tz5gVepoqVe0SK2cqzA7ybszGJb6llYDSqG+FZRDesq/G4=----ATTACHMENT:----NTgwNTI2NjkwMjA2OTMxNyAyNDU1MTE5NzkwMzI2OTg2IDM1MDIzNzE2MDM2NjIyNTM=