summaryrefslogtreecommitdiffstats
path: root/settings/Controller/LogSettingsController.php
diff options
context:
space:
mode:
authorLukas Reschke <lukas@owncloud.com>2016-04-06 11:09:55 +0200
committerLukas Reschke <lukas@owncloud.com>2016-04-06 11:12:22 +0200
commitc12bb839e197990db86f0062fa6b7ec54aff5121 (patch)
treef70c0ac4f4113db7c0b5fdde0665c1f510fe6601 /settings/Controller/LogSettingsController.php
parent046506dd146f823499098d0d2b0042072e436469 (diff)
downloadnextcloud-server-c12bb839e197990db86f0062fa6b7ec54aff5121.tar.gz
nextcloud-server-c12bb839e197990db86f0062fa6b7ec54aff5121.zip
Rename files to be PSR-4 compliant
Diffstat (limited to 'settings/Controller/LogSettingsController.php')
-rw-r--r--settings/Controller/LogSettingsController.php109
1 files changed, 109 insertions, 0 deletions
diff --git a/settings/Controller/LogSettingsController.php b/settings/Controller/LogSettingsController.php
new file mode 100644
index 00000000000..c0c9ee04ca3
--- /dev/null
+++ b/settings/Controller/LogSettingsController.php
@@ -0,0 +1,109 @@
+<?php
+/**
+ * @author Georg Ehrke <georg@owncloud.com>
+ * @author Morris Jobke <hey@morrisjobke.de>
+ * @author Thomas Müller <thomas.mueller@tmit.eu>
+ *
+ * @copyright Copyright (c) 2016, ownCloud, Inc.
+ * @license AGPL-3.0
+ *
+ * This code is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License, version 3,
+ * along with this program. If not, see <http://www.gnu.org/licenses/>
+ *
+ */
+
+namespace OC\Settings\Controller;
+
+use OCP\AppFramework\Controller;
+use OCP\AppFramework\Http;
+use OCP\AppFramework\Http\JSONResponse;
+use OCP\AppFramework\Http\StreamResponse;
+use OCP\IL10N;
+use OCP\IRequest;
+use OCP\IConfig;
+
+/**
+ * Class LogSettingsController
+ *
+ * @package OC\Settings\Controller
+ */
+class LogSettingsController extends Controller {
+ /**
+ * @var \OCP\IConfig
+ */
+ private $config;
+
+ /**
+ * @var \OCP\IL10N
+ */
+ private $l10n;
+
+ /**
+ * @param string $appName
+ * @param IRequest $request
+ * @param IConfig $config
+ */
+ public function __construct($appName,
+ IRequest $request,
+ IConfig $config,
+ IL10N $l10n) {
+ parent::__construct($appName, $request);
+ $this->config = $config;
+ $this->l10n = $l10n;
+ }
+
+ /**
+ * set log level for logger
+ *
+ * @param int $level
+ * @return JSONResponse
+ */
+ public function setLogLevel($level) {
+ if ($level < 0 || $level > 4) {
+ return new JSONResponse([
+ 'message' => (string) $this->l10n->t('log-level out of allowed range'),
+ ], Http::STATUS_BAD_REQUEST);
+ }
+
+ $this->config->setSystemValue('loglevel', $level);
+ return new JSONResponse([
+ 'level' => $level,
+ ]);
+ }
+
+ /**
+ * get log entries from logfile
+ *
+ * @param int $count
+ * @param int $offset
+ * @return JSONResponse
+ */
+ public function getEntries($count=50, $offset=0) {
+ return new JSONResponse([
+ 'data' => \OC_Log_Owncloud::getEntries($count, $offset),
+ 'remain' => count(\OC_Log_Owncloud::getEntries(1, $offset + $count)) !== 0,
+ ]);
+ }
+
+ /**
+ * download logfile
+ *
+ * @NoCSRFRequired
+ *
+ * @return StreamResponse
+ */
+ public function download() {
+ $resp = new StreamResponse(\OC_Log_Owncloud::getLogFilePath());
+ $resp->addHeader('Content-Disposition', 'attachment; filename="owncloud.log"');
+ return $resp;
+ }
+}