$viewer = new Syonix\LogViewer\LogViewer($app['config']['logs']); $clients = $viewer->getClients(); $client = $viewer->getClient($clientSlug); if ($client === null || !$client->logExists($logSlug)) { $app->abort(404, "Log file not configured"); } $log = $client->getLog($logSlug)->load(); $minLogLevel = $request->query->get('m'); $currentLogger = $request->query->get('l'); if ($currentLogger && !$log->getLoggers()->contains($currentLogger)) { return $app->redirect($app['url_generator']->generate('log', array('clientSlug' => $clientSlug, 'logSlug' => $logSlug, 'm' => $minLogLevel, 'l' => $currentLogger))); } } catch (\League\Flysystem\FileNotFoundException $e) { $app->abort(404, "Log file not found"); } return $app['twig']->render('log.html.twig', array('clients' => $clients, 'current_client_slug' => $clientSlug, 'current_log_slug' => $logSlug, 'log' => $log, 'logLevels' => Monolog\Logger::getLevels(), 'min_log_level' => in_array($minLogLevel, Monolog\Logger::getLevels()) ? $minLogLevel : 100, 'loggers' => $log->getLoggers(), 'current_logger' => $currentLogger)); }; $app->get('/logs/{clientSlug}/{logSlug}', $controller_log)->bind("log"); } $app->error(function (\Syonix\LogViewer\Exceptions\ConfigFileMissingException $e, $code) use($app) { return $app['twig']->render('error/config_file_missing.html.twig'); }); $app->error(function (\Syonix\LogViewer\Exceptions\NoLogsConfiguredException $e, $code) use($app) { return $app['twig']->render('error/no_log_files.html.twig'); }); $app->error(function (\Symfony\Component\HttpKernel\Exception\HttpException $e) use($app) { if ($app['debug']) { return; } switch ($e->getStatusCode()) { case 404:
/** * Gets all supported logging levels. * * @return array Assoc array with human-readable level names => level codes. */ public static function getLevels() { return Monolog\Logger::getLevels(); }