* @author Lukas Reschke * @author Morris Jobke * @author Thomas Müller * @author Thomas Pulzer * * @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 * */ namespace OC\Settings\Controller; use OC\Log; use OCP\AppFramework\Controller; use OCP\AppFramework\Http\StreamResponse; use OCP\ILogger; use OCP\IRequest; /** * Class LogSettingsController * * @package OC\Settings\Controller */ class LogSettingsController extends Controller { /** @var ILogger */ private $log; public function __construct(string $appName, IRequest $request, ILogger $logger) { parent::__construct($appName, $request); $this->log = $logger; } /** * download logfile * * @NoCSRFRequired * * @return StreamResponse */ public function download() { if(!$this->log instanceof Log) { throw new \UnexpectedValueException('Log file not available'); } $resp = new StreamResponse($this->log->getLogPath()); $resp->addHeader('Content-Type', 'application/octet-stream'); $resp->addHeader('Content-Disposition', 'attachment; filename="nextcloud.log"'); return $resp; } }