/** * Turns off the lights. * * @param array $options Array of options for disabling certain things during shutdown * Add `'jobs' => true` to disable scheduled jobs * Add `'log_queries' => true` to disable query logging */ public function shutdown($options = array()) { \Events::dispatch('on_shutdown'); $config = $this['config']; if ($this->isInstalled()) { if (!isset($options['jobs']) || $options['jobs'] == false) { $this->handleScheduledJobs(); } $logger = new Logger(); $r = Request::getInstance(); if ($config->get('concrete.log.queries.log') && (!isset($options['log_queries']) || $options['log_queries'] == false)) { $connection = Database::getActiveConnection(); if ($logger->shouldLogQueries($r)) { $loggers = array(); $configuration = $connection->getConfiguration(); $loggers[] = $configuration->getSQLLogger(); $configuration->setSQLLogger(null); if ($config->get('concrete.log.queries.clear_on_reload')) { $logger->clearQueryLog(); } $logger->write($loggers); } } foreach (\Database::getConnections() as $connection) { $connection->close(); } } if ($config->get('concrete.cache.overrides')) { Environment::saveCachedEnvironmentObject(); } else { $env = Environment::get(); $env->clearOverrideCache(); } exit; }
public function clear() { if (Loader::helper('validation/token')->validate('clear')) { $l = new Logger(); $l->clearQueryLog(); $this->redirect('/dashboard/system/optimization/query_log', 'cleared'); } }