+++ /dev/null
-<?php
-/**
- * @copyright Copyright (c) 2016 Arthur Schiwon <blizzz@arthur-schiwon.de>
- *
- * @author Arthur Schiwon <blizzz@arthur-schiwon.de>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * 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
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
-
-namespace OC\Settings\Admin;
-
-use OC\Log\File as LogFile;
-use OCP\AppFramework\Http\TemplateResponse;
-use OCP\IConfig;
-use OCP\Settings\ISettings;
-
-class Logging implements ISettings {
- /** @var IConfig */
- private $config;
-
- /**
- * @param IConfig $config
- */
- public function __construct(IConfig $config) {
- $this->config = $config;
- }
-
- /**
- * @return TemplateResponse
- */
- public function getForm() {
- $logType = $this->config->getSystemValue('log_type', 'file');
- $showLog = ($logType === 'file' || $logType === 'owncloud');
-
- $numEntriesToLoad = 5;
- $entries = LogFile::getEntries($numEntriesToLoad + 1);
- $entriesRemaining = count($entries) > $numEntriesToLoad;
- $entries = array_slice($entries, 0, $numEntriesToLoad);
-
- $logFileExists = file_exists(LogFile::getLogFilePath()) ;
- $logFileSize = $logFileExists ? filesize(LogFile::getLogFilePath()) : 0;
-
- $parameters = [
- 'loglevel' => $this->config->getSystemValue('loglevel', 2),
- 'entries' => $entries,
- 'entriesremain' => $entriesRemaining,
- 'doesLogFileExist' => $logFileExists,
- 'logFileSize' => $logFileSize,
- 'showLog' => $showLog,
- ];
-
- return new TemplateResponse('settings', 'admin/logging', $parameters, '');
- }
-
- /**
- * @return string the section ID, e.g. 'sharing'
- */
- public function getSection() {
- return 'logging';
- }
-
- /**
- * @return int whether the form should be rather on the top or bottom of
- * the admin section. The forms are arranged in ascending order of the
- * priority values. It is required to return a value between 0 and 100.
- *
- * E.g.: 70
- */
- public function getPriority() {
- return 0;
- }
-}
0 => [new Section('server', $this->l->t('Server settings'), 0)],
5 => [new Section('sharing', $this->l->t('Sharing'), 0)],
45 => [new Section('encryption', $this->l->t('Encryption'), 0)],
- 90 => [new Section('logging', $this->l->t('Logging'), 0)],
98 => [new Section('additional', $this->l->t('Additional settings'), 0)],
99 => [new Section('tips-tricks', $this->l->t('Tips & tricks'), 0)],
];
$form = new Admin\Sharing($this->config);
$forms[$form->getPriority()] = [$form];
}
- if($section === 'logging') {
- /** @var ISettings $form */
- $form = new Admin\Logging($this->config);
- $forms[$form->getPriority()] = [$form];
- }
if($section === 'additional') {
/** @var ISettings $form */
$form = new Admin\Additional($this->config);
* @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\File::getEntries($count, $offset),
- 'remain' => count(\OC\Log\File::getEntries(1, $offset + $count)) !== 0,
- ]);
- }
-
/**
* download logfile
*
+++ /dev/null
-<?php
-/**
- * @copyright Copyright (c) 2016 Arthur Schiwon <blizzz@arthur-schiwon.de>
- *
- * @author Arthur Schiwon <blizzz@arthur-schiwon.de>
- *
- * @license GNU AGPL version 3 or any later version
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * 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
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- */
-
-/** @var \OCP\IL10N $l */
-/** @var array $_ */
-
-$levels = ['Debug', 'Info', 'Warning', 'Error', 'Fatal'];
-$levelLabels = [
- $l->t( 'Everything (fatal issues, errors, warnings, info, debug)' ),
- $l->t( 'Info, warnings, errors and fatal issues' ),
- $l->t( 'Warnings, errors and fatal issues' ),
- $l->t( 'Errors and fatal issues' ),
- $l->t( 'Fatal issues only' ),
-];
-
-?>
-
-<div class="section" id="log-section">
- <h2><?php p($l->t('Log'));?></h2>
- <?php if ($_['showLog'] && $_['doesLogFileExist']): ?>
- <table id="log" class="grid">
- <?php foreach ($_['entries'] as $entry): ?>
- <tr>
- <td>
- <?php p($levels[$entry->level]);?>
- </td>
- <td>
- <?php p($entry->app);?>
- </td>
- <td class="log-message">
- <?php p($entry->message);?>
- </td>
- <td class="date">
- <?php if(is_int($entry->time)){
- p(OC_Util::formatDate($entry->time));
- } else {
- p($entry->time);
- }?>
- </td>
- <td><?php isset($entry->user) ? p($entry->user) : p('--') ?></td>
- </tr>
- <?php endforeach;?>
- </table>
- <p><?php p($l->t('What to log'));?> <select name='loglevel' id='loglevel'>
- <?php for ($i = 0; $i < 5; $i++):
- $selected = '';
- if ($i == $_['loglevel']):
- $selected = 'selected="selected"';
- endif; ?>
- <option value='<?php p($i)?>' <?php p($selected) ?>><?php p($levelLabels[$i])?></option>
- <?php endfor;?>
- </select></p>
-
- <?php if ($_['logFileSize'] > 0): ?>
- <a href="<?php print_unescaped(OC::$server->getURLGenerator()->linkToRoute('settings.LogSettings.download')); ?>" class="button" id="downloadLog"><?php p($l->t('Download logfile'));?></a>
- <?php endif; ?>
- <?php if ($_['entriesremain']): ?>
- <input id="moreLog" type="button" value="<?php p($l->t('More'));?>...">
- <input id="lessLog" type="button" value="<?php p($l->t('Less'));?>...">
- <?php endif; ?>
- <?php if ($_['logFileSize'] > (100 * 1024 * 1024)): ?>
- <br>
- <em>
- <?php p($l->t('The logfile is bigger than 100 MB. Downloading it may take some time!')); ?>
- </em>
- <?php endif; ?>
- <?php endif; ?>
-</div>