diff options
Diffstat (limited to 'core/command/log')
-rw-r--r-- | core/command/log/manage.php | 171 | ||||
-rw-r--r-- | core/command/log/owncloud.php | 124 |
2 files changed, 0 insertions, 295 deletions
diff --git a/core/command/log/manage.php b/core/command/log/manage.php deleted file mode 100644 index 1d65d7ed0d8..00000000000 --- a/core/command/log/manage.php +++ /dev/null @@ -1,171 +0,0 @@ -<?php -/** - * @author Robin McCorkell <robin@mccorkell.me.uk> - * - * @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\Core\Command\Log; - -use \OCP\IConfig; - -use Symfony\Component\Console\Command\Command; -use Symfony\Component\Console\Input\InputInterface; -use Symfony\Component\Console\Input\InputArgument; -use Symfony\Component\Console\Input\InputOption; -use Symfony\Component\Console\Output\OutputInterface; - -class Manage extends Command { - - const DEFAULT_BACKEND = 'owncloud'; - const DEFAULT_LOG_LEVEL = 2; - const DEFAULT_TIMEZONE = 'UTC'; - - /** @var IConfig */ - protected $config; - - public function __construct(IConfig $config) { - $this->config = $config; - parent::__construct(); - } - - protected function configure() { - $this - ->setName('log:manage') - ->setDescription('manage logging configuration') - ->addOption( - 'backend', - null, - InputOption::VALUE_REQUIRED, - 'set the logging backend [owncloud, syslog, errorlog]' - ) - ->addOption( - 'level', - null, - InputOption::VALUE_REQUIRED, - 'set the log level [debug, info, warning, error]' - ) - ->addOption( - 'timezone', - null, - InputOption::VALUE_REQUIRED, - 'set the logging timezone' - ) - ; - } - - protected function execute(InputInterface $input, OutputInterface $output) { - // collate config setting to the end, to avoid partial configuration - $toBeSet = []; - - if ($backend = $input->getOption('backend')) { - $this->validateBackend($backend); - $toBeSet['log_type'] = $backend; - } - - if ($level = $input->getOption('level')) { - if (is_numeric($level)) { - $levelNum = $level; - // sanity check - $this->convertLevelNumber($levelNum); - } else { - $levelNum = $this->convertLevelString($level); - } - $toBeSet['loglevel'] = $levelNum; - } - - if ($timezone = $input->getOption('timezone')) { - $this->validateTimezone($timezone); - $toBeSet['logtimezone'] = $timezone; - } - - // set config - foreach ($toBeSet as $option => $value) { - $this->config->setSystemValue($option, $value); - } - - // display configuration - $backend = $this->config->getSystemValue('log_type', self::DEFAULT_BACKEND); - $output->writeln('Enabled logging backend: '.$backend); - - $levelNum = $this->config->getSystemValue('loglevel', self::DEFAULT_LOG_LEVEL); - $level = $this->convertLevelNumber($levelNum); - $output->writeln('Log level: '.$level.' ('.$levelNum.')'); - - $timezone = $this->config->getSystemValue('logtimezone', self::DEFAULT_TIMEZONE); - $output->writeln('Log timezone: '.$timezone); - } - - /** - * @param string $backend - * @throws \InvalidArgumentException - */ - protected function validateBackend($backend) { - if (!class_exists('OC_Log_'.$backend)) { - throw new \InvalidArgumentException('Invalid backend'); - } - } - - /** - * @param string $timezone - * @throws \Exception - */ - protected function validateTimezone($timezone) { - new \DateTimeZone($timezone); - } - - /** - * @param string $level - * @return int - * @throws \InvalidArgumentException - */ - protected function convertLevelString($level) { - $level = strtolower($level); - switch ($level) { - case 'debug': - return 0; - case 'info': - return 1; - case 'warning': - case 'warn': - return 2; - case 'error': - case 'err': - return 3; - } - throw new \InvalidArgumentException('Invalid log level string'); - } - - /** - * @param int $levelNum - * @return string - * @throws \InvalidArgumentException - */ - protected function convertLevelNumber($levelNum) { - switch ($levelNum) { - case 0: - return 'Debug'; - case 1: - return 'Info'; - case 2: - return 'Warning'; - case 3: - return 'Error'; - } - throw new \InvalidArgumentException('Invalid log level number'); - } -} diff --git a/core/command/log/owncloud.php b/core/command/log/owncloud.php deleted file mode 100644 index 7213f6726a2..00000000000 --- a/core/command/log/owncloud.php +++ /dev/null @@ -1,124 +0,0 @@ -<?php -/** - * @author Robin McCorkell <robin@mccorkell.me.uk> - * - * @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\Core\Command\Log; - -use \OCP\IConfig; - -use Symfony\Component\Console\Command\Command; -use Symfony\Component\Console\Input\InputInterface; -use Symfony\Component\Console\Input\InputArgument; -use Symfony\Component\Console\Input\InputOption; -use Symfony\Component\Console\Output\OutputInterface; - -class OwnCloud extends Command { - - /** @var IConfig */ - protected $config; - - public function __construct(IConfig $config) { - $this->config = $config; - parent::__construct(); - } - - protected function configure() { - $this - ->setName('log:owncloud') - ->setDescription('manipulate ownCloud logging backend') - ->addOption( - 'enable', - null, - InputOption::VALUE_NONE, - 'enable this logging backend' - ) - ->addOption( - 'file', - null, - InputOption::VALUE_REQUIRED, - 'set the log file path' - ) - ->addOption( - 'rotate-size', - null, - InputOption::VALUE_REQUIRED, - 'set the file size for log rotation, 0 = disabled' - ) - ; - } - - protected function execute(InputInterface $input, OutputInterface $output) { - $toBeSet = []; - - if ($input->getOption('enable')) { - $toBeSet['log_type'] = 'owncloud'; - } - - if ($file = $input->getOption('file')) { - $toBeSet['logfile'] = $file; - } - - if (($rotateSize = $input->getOption('rotate-size')) !== null) { - $rotateSize = \OCP\Util::computerFileSize($rotateSize); - $this->validateRotateSize($rotateSize); - $toBeSet['log_rotate_size'] = $rotateSize; - } - - // set config - foreach ($toBeSet as $option => $value) { - $this->config->setSystemValue($option, $value); - } - - // display config - if ($this->config->getSystemValue('log_type', 'owncloud') === 'owncloud') { - $enabledText = 'enabled'; - } else { - $enabledText = 'disabled'; - } - $output->writeln('Log backend ownCloud: '.$enabledText); - - $dataDir = $this->config->getSystemValue('datadirectory', \OC::$SERVERROOT.'/data'); - $defaultLogFile = rtrim($dataDir, '/').'/owncloud.log'; - $output->writeln('Log file: '.$this->config->getSystemValue('logfile', $defaultLogFile)); - - $rotateSize = $this->config->getSystemValue('log_rotate_size', 0); - if ($rotateSize) { - $rotateString = \OCP\Util::humanFileSize($rotateSize); - } else { - $rotateString = 'disabled'; - } - $output->writeln('Rotate at: '.$rotateString); - } - - /** - * @param mixed $rotateSize - * @throws \InvalidArgumentException - */ - protected function validateRotateSize(&$rotateSize) { - if ($rotateSize === false) { - throw new \InvalidArgumentException('Error parsing log rotation file size'); - } - $rotateSize = (int) $rotateSize; - if ($rotateSize < 0) { - throw new \InvalidArgumentException('Log rotation file size must be non-negative'); - } - } - -} |