/** * @param ContainerInterface $container * * @return LoggerInterface * * @throws \Interop\Container\Exception\NotFoundException * @throws \Interop\Container\Exception\ContainerException * @throws \Exception * @throws \InvalidArgumentException * @throws \Monolog\Handler\MissingExtensionException */ public function __invoke(ContainerInterface $container) : LoggerInterface { $config = $container->get('config'); $logger = new Logger('app', [new StreamHandler('data/log/app.log', Logger::INFO)], [new PsrLogMessageProcessor()]); if (isset($config['monolog']['slack'])) { $slackHandler = new SlackHandler($config['monolog']['slack']['token'], $config['monolog']['slack']['channel'], $config['monolog']['slack']['name']); $slackHandler->setLevel(Logger::NOTICE); $logger->pushHandler($slackHandler); } return $logger; }