code: public function setup(\Pimple $app)
      {
          $config = $app['config'];
          \assert('$config instanceof \OctoLab\Common\Config\SimpleConfig');
          $app['loggers'] = $app::share(function (\Pimple $app) use ($config) : Locator {
              return new Locator($config['monolog'], $app['monolog.component_factory'], $app['app.name']);
          });
          $app['logger'] = $app::share(function (\Pimple $app) : \Monolog\Logger {
              return $app['loggers']->getDefaultChannel();
          });
          $app['monolog.bridge'] = $app::share(function (\Pimple $app) : callable {
              return $this->getBridge($app);
          });
          $app['monolog.component_factory'] = $app::share(function () : ComponentFactory {
              return ComponentFactory::withDefaults();
          });
      }
docs: @param \Pimple $app
  
  @throws \InvalidArgumentException
  
  @api