From b71d1d3616115653eb928489093fc2581d830cf5 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Fri, 3 Oct 2014 01:35:07 +0200 Subject: Add QueryLogger interface to allow apps to get a list of used queries --- lib/public/debug/iquery.php | 26 ++++++++++++++++++++++++++ lib/public/debug/iquerylogger.php | 27 +++++++++++++++++++++++++++ lib/public/iservercontainer.php | 9 +++++++++ 3 files changed, 62 insertions(+) create mode 100644 lib/public/debug/iquery.php create mode 100644 lib/public/debug/iquerylogger.php (limited to 'lib/public') diff --git a/lib/public/debug/iquery.php b/lib/public/debug/iquery.php new file mode 100644 index 00000000000..070c4d61196 --- /dev/null +++ b/lib/public/debug/iquery.php @@ -0,0 +1,26 @@ + + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OCP\Debug; + +interface IQuery { + /** + * @return string + */ + public function getSql(); + + /** + * @return array + */ + public function getParams(); + + /** + * @return float + */ + public function getDuration(); +} diff --git a/lib/public/debug/iquerylogger.php b/lib/public/debug/iquerylogger.php new file mode 100644 index 00000000000..fe8eae089da --- /dev/null +++ b/lib/public/debug/iquerylogger.php @@ -0,0 +1,27 @@ + + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OCP\Debug; + +use Doctrine\DBAL\Logging\SQLLogger; + +interface IQueryLogger extends SQLLogger { + /** + * @param string $sql + * @param array $params + * @param array $types + */ + public function startQuery($sql, array $params = null, array $types = null); + + public function stopQuery(); + + /** + * @return \OCP\Debug\IQuery[] + */ + public function getQueries(); +} diff --git a/lib/public/iservercontainer.php b/lib/public/iservercontainer.php index 57bbf628993..97ff74385a2 100644 --- a/lib/public/iservercontainer.php +++ b/lib/public/iservercontainer.php @@ -255,4 +255,13 @@ interface IServerContainer { * @return \OCP\Debug\IEventLogger */ function getEventLogger(); + + /** + * Get the active query logger + * + * The returned logger only logs data when debug mode is enabled + * + * @return \OCP\Debug\IQueryLogger + */ + function getQueryLogger(); } -- cgit v1.2.3