public function getServiceConfig() { return ['factories' => ['loslog_options' => function (ServiceLocatorInterface $sm) { $config = $sm->get('Configuration'); return new ModuleOptions(isset($config['loslog']) ? $config['loslog'] : []); }, 'LosLog\\Log\\EntityLogger' => function (ServiceLocatorInterface $sm) { $config = $sm->get('loslog_options'); $logger = new EntityLogger($config->getEntityLoggerFile(), $config->getLogDir()); return $logger; }, 'LosLog\\Log\\ErrorLogger' => function (ServiceLocatorInterface $sm) { $config = $sm->get('loslog_options'); $logger = new ErrorLogger($config->getErrorLoggerFile(), $config->getLogDir()); return $logger; }, 'LosLog\\Log\\SqlLogger' => function (ServiceLocatorInterface $sm) { $config = $sm->get('loslog_options'); $logger = new SqlLogger($config->getSqlLoggerFile(), $config->getLogDir()); return $logger; }, 'LosLog\\Log\\StaticLogger' => function (ServiceLocatorInterface $sm) { $config = $sm->get('loslog_options'); $logger = StaticLogger::getInstance($config->getStaticLoggerFile(), $config->getLogDir()); return $logger; }, 'LosLog\\Log\\RollbarLogger' => function (ServiceLocatorInterface $sm) { $logger = new RollbarLogger($sm->get('RollbarNotifier')); return $logger; }, 'RollbarNotifier' => function (ServiceLocatorInterface $sm) { $config = $sm->get('loslog_options'); $vet = $config->toArray(); $vet['agent_log_location'] = $config->getAgentLogLocation(); $logger = new RollbarNotifier($vet); return $logger; }], 'aliases' => ['loslog_entitylogger' => 'LosLog\\Log\\EntityLogger', 'loslog_errorlogger' => 'LosLog\\Log\\ErrorLogger', 'loslog_sqllogger' => 'LosLog\\Log\\SqlLogger', 'loslog_staticlogger' => 'LosLog\\Log\\StaticLogger', 'loslog_rollbarlogger' => 'LosLog\\Log\\RollbarLogger']]; }