function(ContainerInterface $container) { $minLogLevel = Monolog\Level::Debug; if ($container->has('DEBUG') and !$container->get('DEBUG')) { $minLogLevel = Monolog\Level::Warning; } $handlers = []; switch($minLogLevel) { case Monolog\Level::Debug: $handlers []= new Monolog\Handler\FilterHandler( ($container->has('ENVIRONMENT') and $container->get('ENVIRONMENT') === 'development') ? (new Monolog\Handler\StreamHandler('/logs/debug.log')) ->setFormatter($container->get(Monolog\Formatter\LineFormatter::class)) : (new Monolog\Handler\RotatingFileHandler('/logs/debug.log', 10)) ->setFormatter(new Monolog\Formatter\LineFormatter(null, null, false, false, true)), Monolog\Level::Debug, Monolog\Level::Debug ); case Monolog\Level::Info: case Monolog\Level::Notice: $handlers []= new Monolog\Handler\FilterHandler( ($container->has('ENVIRONMENT') and $container->get('ENVIRONMENT') === 'development') ? (new Monolog\Handler\StreamHandler('/logs/notices.log')) ->setFormatter($container->get(Monolog\Formatter\LineFormatter::class)) : (new Monolog\Handler\RotatingFileHandler('/logs/info.log', 10)) ->setFormatter(new Monolog\Formatter\LineFormatter(null, null, false, false, true)), Monolog\Level::Info, Monolog\Level::Notice, ); case Monolog\Level::Warning: case Monolog\Level::Error: $handlers []= new Monolog\Handler\FilterHandler( ($container->has('ENVIRONMENT') and $container->get('ENVIRONMENT') === 'development') ? (new Monolog\Handler\StreamHandler('/logs/error.log')) ->setFormatter($container->get(Monolog\Formatter\LineFormatter::class)) : (new Monolog\Handler\RotatingFileHandler('/logs/error.log', 10)) ->setFormatter($container->get(Monolog\Formatter\LineFormatter::class)), Monolog\Level::Warning, Monolog\Level::Error ); case Monolog\Level::Critical: case Monolog\Level::Alert: case Monolog\Level::Emergency: $handlers []= new Monolog\Handler\FilterHandler( ($container->has('ENVIRONMENT') and $container->get('ENVIRONMENT') === 'development') ? (new Monolog\Handler\StreamHandler('/logs/critical.log')) ->setFormatter($container->get(Monolog\Formatter\LineFormatter::class)) : (new Monolog\Handler\RotatingFileHandler('/logs/critical.log', 10)) ->setFormatter($container->get(Monolog\Formatter\LineFormatter::class)), Monolog\Level::Critical ); } return new Monolog\Logger('incoviba', $handlers, [ $container->get(Monolog\Processor\PsrLogMessageProcessor::class), $container->get(Monolog\Processor\IntrospectionProcessor::class), $container->get(Monolog\Processor\MemoryUsageProcessor::class), $container->get(Monolog\Processor\MemoryPeakUsageProcessor::class) ]); } ];