Merge pull request #2214 from nextcloud/remove-logging
remove old logging section
This commit is contained in:
commit
cd24010fa4
|
@ -1,86 +0,0 @@
|
|||
<?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;
|
||||
}
|
||||
}
|
|
@ -332,7 +332,6 @@ class Manager implements IManager {
|
|||
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)],
|
||||
];
|
||||
|
@ -382,11 +381,6 @@ class Manager implements IManager {
|
|||
$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);
|
||||
|
|
|
@ -41,63 +41,6 @@ use OCP\IConfig;
|
|||
* @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
|
||||
*
|
||||
|
|
|
@ -1,88 +0,0 @@
|
|||
<?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>
|
|
@ -1,89 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* @author Georg Ehrke
|
||||
* @copyright 2014 Georg Ehrke <georg@ownCloud.com>
|
||||
*
|
||||
* This file is licensed under the Affero General Public License version 3 or
|
||||
* later.
|
||||
* See the COPYING-README file.
|
||||
*/
|
||||
|
||||
namespace Tests\Settings\Controller;
|
||||
|
||||
use \OC\Settings\Application;
|
||||
use OC\Settings\Controller\LogSettingsController;
|
||||
use OCP\AppFramework\Http\StreamResponse;
|
||||
use OCP\IConfig;
|
||||
use OCP\IL10N;
|
||||
use OCP\IRequest;
|
||||
|
||||
/**
|
||||
* @package Tests\Settings\Controller
|
||||
*/
|
||||
class LogSettingsControllerTest extends \Test\TestCase {
|
||||
|
||||
/** @var IConfig|\PHPUnit_Framework_MockObject_MockObject */
|
||||
private $config;
|
||||
|
||||
/** @var LogSettingsController */
|
||||
private $logSettingsController;
|
||||
|
||||
protected function setUp() {
|
||||
parent::setUp();
|
||||
|
||||
$this->config = $this->createMock(IConfig::class);
|
||||
$l = $this->createMock(IL10N::class);
|
||||
$l->method('t')
|
||||
->will($this->returnCallback(function($text, $parameters = []) {
|
||||
return vsprintf($text, $parameters);
|
||||
}));
|
||||
$this->logSettingsController = new LogSettingsController(
|
||||
'settings',
|
||||
$this->createMock(IRequest::class),
|
||||
$this->config,
|
||||
$l
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider logLevelData
|
||||
*/
|
||||
public function testSetLogLevel($level, $inRange) {
|
||||
if ($inRange) {
|
||||
$this->config->expects($this->once())
|
||||
->method('setSystemValue')
|
||||
->with('loglevel', $level);
|
||||
}
|
||||
|
||||
$response = $this->logSettingsController->setLogLevel($level)->getData();
|
||||
|
||||
if ($inRange) {
|
||||
$expectedResponse = ['level' => $level];
|
||||
} else {
|
||||
$expectedResponse = ['message' => 'log-level out of allowed range'];
|
||||
}
|
||||
|
||||
$this->assertSame($expectedResponse, $response);
|
||||
}
|
||||
|
||||
public function logLevelData() {
|
||||
return [
|
||||
[-1, false],
|
||||
[0, true],
|
||||
[1, true],
|
||||
[2, true],
|
||||
[3, true],
|
||||
[4, true],
|
||||
[5, false],
|
||||
];
|
||||
}
|
||||
|
||||
public function testDownload() {
|
||||
$response = $this->logSettingsController->download();
|
||||
|
||||
$this->assertInstanceOf('\OCP\AppFramework\Http\StreamResponse', $response);
|
||||
$headers = $response->getHeaders();
|
||||
$this->assertEquals('application/octet-stream', $headers['Content-Type']);
|
||||
$this->assertEquals('attachment; filename="nextcloud.log"', $headers['Content-Disposition']);
|
||||
}
|
||||
}
|
|
@ -1,91 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch>
|
||||
*
|
||||
* @author Lukas Reschke <lukas@statuscode.ch>
|
||||
*
|
||||
* @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 Test\Settings\Admin;
|
||||
|
||||
use OC\Settings\Admin\Logging;
|
||||
use OCP\AppFramework\Http\TemplateResponse;
|
||||
use OCP\IConfig;
|
||||
use Test\TestCase;
|
||||
use OC\Log\File as LogFile;
|
||||
|
||||
class LoggingTest extends TestCase {
|
||||
/** @var Logging */
|
||||
private $admin;
|
||||
/** @var IConfig */
|
||||
private $config;
|
||||
|
||||
public function setUp() {
|
||||
parent::setUp();
|
||||
$this->config = $this->getMockBuilder('\OCP\IConfig')->getMock();
|
||||
|
||||
$this->admin = new Logging(
|
||||
$this->config
|
||||
);
|
||||
}
|
||||
|
||||
public function testGetForm() {
|
||||
$this->config
|
||||
->expects($this->at(0))
|
||||
->method('getSystemValue')
|
||||
->with('log_type', 'file')
|
||||
->willReturn('owncloud');
|
||||
$this->config
|
||||
->expects($this->at(1))
|
||||
->method('getSystemValue')
|
||||
->with('loglevel', 2)
|
||||
->willReturn(3);
|
||||
|
||||
$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;
|
||||
|
||||
$expected = new TemplateResponse(
|
||||
'settings',
|
||||
'admin/logging',
|
||||
[
|
||||
'loglevel' => 3,
|
||||
'entries' => $entries,
|
||||
'entriesremain' => $entriesRemaining,
|
||||
'doesLogFileExist' => $logFileExists,
|
||||
'logFileSize' => $logFileSize,
|
||||
'showLog' => true,
|
||||
],
|
||||
''
|
||||
);
|
||||
|
||||
$this->assertEquals($expected, $this->admin->getForm());
|
||||
}
|
||||
|
||||
public function testGetSection() {
|
||||
$this->assertSame('logging', $this->admin->getSection());
|
||||
}
|
||||
|
||||
public function testGetPriority() {
|
||||
$this->assertSame(0, $this->admin->getPriority());
|
||||
}
|
||||
}
|
|
@ -177,7 +177,6 @@ class ManagerTest extends TestCase {
|
|||
0 => [new Section('server', 'Server settings', 0)],
|
||||
5 => [new Section('sharing', 'Sharing', 0)],
|
||||
45 => [new Section('encryption', 'Encryption', 0)],
|
||||
90 => [new Section('logging', 'Logging', 0)],
|
||||
98 => [new Section('additional', 'Additional settings', 0)],
|
||||
99 => [new Section('tips-tricks', 'Tips & tricks', 0)],
|
||||
], $this->manager->getAdminSections());
|
||||
|
|
Loading…
Reference in New Issue