From ba3f4f118e8c48a23dcffa723e38439f0b9b7df9 Mon Sep 17 00:00:00 2001 From: Thomas Pulzer Date: Fri, 22 Jul 2016 11:44:19 +0200 Subject: [PATCH 1/4] Changed logtype to file instead of owncloud. - Updated the config sample to point to log_type='file' - Renamed the Class for logfile logging to File in namespace 'OC\Log\'. Changed the occurrences of 'OC\Log\Owncloud' to 'OC\Log\File'. - Renamed the Class for log:file command to File in namespace 'OC\Core\Command\Log\File'. Changed registration of the command to use 'OC\Core\Command\Log\File'. - Changed default Syslog tag to Nextcloud - Retained backwards compatibility for configs with 'logtype' => 'owncloud' - Adjusted tests for the new file log. Closes #490. --- config/config.sample.php | 2 +- core/Command/Log/{OwnCloud.php => File.php} | 14 ++++++++------ core/Command/Log/Manage.php | 4 ++-- core/register_command.php | 2 +- lib/private/Log.php | 4 +++- lib/private/Log/{Owncloud.php => File.php} | 2 +- lib/private/Log/Syslog.php | 2 +- lib/private/Server.php | 5 +++-- settings/Controller/LogSettingsController.php | 6 +++--- settings/admin.php | 7 ++++--- tests/Core/Command/Log/ManageTest.php | 2 +- tests/Core/Command/Log/OwnCloudTest.php | 10 +++++----- tests/lib/Log/OwncloudTest.php | 8 ++++---- 13 files changed, 37 insertions(+), 31 deletions(-) rename core/Command/Log/{OwnCloud.php => File.php} (89%) rename lib/private/Log/{Owncloud.php => File.php} (99%) diff --git a/config/config.sample.php b/config/config.sample.php index 3376603373..0b1aeeabf2 100644 --- a/config/config.sample.php +++ b/config/config.sample.php @@ -569,7 +569,7 @@ $CONFIG = array( * Setting this parameter to ``errorlog`` will use the PHP error_log function * for logging. */ -'log_type' => 'owncloud', +'log_type' => 'file', /** * Log file path for the Nextcloud logging type. diff --git a/core/Command/Log/OwnCloud.php b/core/Command/Log/File.php similarity index 89% rename from core/Command/Log/OwnCloud.php rename to core/Command/Log/File.php index 391259f76b..ec49023740 100644 --- a/core/Command/Log/OwnCloud.php +++ b/core/Command/Log/File.php @@ -31,7 +31,7 @@ use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; -class OwnCloud extends Command { +class File extends Command { /** @var IConfig */ protected $config; @@ -43,8 +43,8 @@ class OwnCloud extends Command { protected function configure() { $this - ->setName('log:owncloud') - ->setDescription('manipulate ownCloud logging backend') + ->setName('log:file') + ->setDescription('manipulate logging backend') ->addOption( 'enable', null, @@ -70,7 +70,7 @@ class OwnCloud extends Command { $toBeSet = []; if ($input->getOption('enable')) { - $toBeSet['log_type'] = 'owncloud'; + $toBeSet['log_type'] = 'file'; } if ($file = $input->getOption('file')) { @@ -89,12 +89,14 @@ class OwnCloud extends Command { } // display config - if ($this->config->getSystemValue('log_type', 'owncloud') === 'owncloud') { + // TODO: Drop backwards compatibility for config in the future + $logType = $this->config->getSystemValue('log_type', 'file'); + if ($logType === 'file' || $logType === 'owncloud') { $enabledText = 'enabled'; } else { $enabledText = 'disabled'; } - $output->writeln('Log backend ownCloud: '.$enabledText); + $output->writeln('Log backend file: '.$enabledText); $dataDir = $this->config->getSystemValue('datadirectory', \OC::$SERVERROOT.'/data'); $defaultLogFile = rtrim($dataDir, '/').'/nextcloud.log'; diff --git a/core/Command/Log/Manage.php b/core/Command/Log/Manage.php index 14d41170dc..554708dfa4 100644 --- a/core/Command/Log/Manage.php +++ b/core/Command/Log/Manage.php @@ -34,7 +34,7 @@ use Symfony\Component\Console\Output\OutputInterface; class Manage extends Command { - const DEFAULT_BACKEND = 'owncloud'; + const DEFAULT_BACKEND = 'file'; const DEFAULT_LOG_LEVEL = 2; const DEFAULT_TIMEZONE = 'UTC'; @@ -54,7 +54,7 @@ class Manage extends Command { 'backend', null, InputOption::VALUE_REQUIRED, - 'set the logging backend [owncloud, syslog, errorlog]' + 'set the logging backend [file, syslog, errorlog]' ) ->addOption( 'level', diff --git a/core/register_command.php b/core/register_command.php index 6f20769fa7..6a220c22b3 100644 --- a/core/register_command.php +++ b/core/register_command.php @@ -99,7 +99,7 @@ if (\OC::$server->getConfig()->getSystemValue('installed', false)) { ); $application->add(new OC\Core\Command\Log\Manage(\OC::$server->getConfig())); - $application->add(new OC\Core\Command\Log\OwnCloud(\OC::$server->getConfig())); + $application->add(new OC\Core\Command\Log\File(\OC::$server->getConfig())); $view = new \OC\Files\View(); $util = new \OC\Encryption\Util( diff --git a/lib/private/Log.php b/lib/private/Log.php index 59233cf5c1..2d06e62f54 100644 --- a/lib/private/Log.php +++ b/lib/private/Log.php @@ -103,7 +103,9 @@ class Log implements ILogger { // FIXME: Add this for backwards compatibility, should be fixed at some point probably if($logger === null) { - $this->logger = 'OC\\Log\\'.ucfirst($this->config->getValue('log_type', 'owncloud')); + // TODO: Drop backwards compatibility for config in the future + $logType = $this->config->getValue('log_type', 'file'); + $this->logger = 'OC\\Log\\'.ucfirst($logType=='owncloud' ? 'file' : $logType); call_user_func(array($this->logger, 'init')); } else { $this->logger = $logger; diff --git a/lib/private/Log/Owncloud.php b/lib/private/Log/File.php similarity index 99% rename from lib/private/Log/Owncloud.php rename to lib/private/Log/File.php index 2cc70015e3..a406dd8395 100644 --- a/lib/private/Log/Owncloud.php +++ b/lib/private/Log/File.php @@ -39,7 +39,7 @@ namespace OC\Log; * Log is saved at data/nextcloud.log (on default) */ -class Owncloud { +class File { static protected $logFile; /** diff --git a/lib/private/Log/Syslog.php b/lib/private/Log/Syslog.php index c6ea0a4035..7397825031 100644 --- a/lib/private/Log/Syslog.php +++ b/lib/private/Log/Syslog.php @@ -38,7 +38,7 @@ class Syslog { * Init class data */ public static function init() { - openlog(\OC::$server->getSystemConfig()->getValue("syslog_tag", "ownCloud"), LOG_PID | LOG_CONS, LOG_USER); + openlog(\OC::$server->getSystemConfig()->getValue("syslog_tag", "Nextcloud"), LOG_PID | LOG_CONS, LOG_USER); // Close at shutdown register_shutdown_function('closelog'); } diff --git a/lib/private/Server.php b/lib/private/Server.php index de2970d9bf..bc1e526786 100644 --- a/lib/private/Server.php +++ b/lib/private/Server.php @@ -364,8 +364,9 @@ class Server extends ServerContainer implements IServerContainer { ); }); $this->registerService('Logger', function (Server $c) { - $logClass = $c->query('AllConfig')->getSystemValue('log_type', 'owncloud'); - $logger = 'OC\\Log\\' . ucfirst($logClass); + $logClass = $c->query('AllConfig')->getSystemValue('log_type', 'file'); + // TODO: Drop backwards compatibility for config in the future + $logger = 'OC\\Log\\' . ucfirst($logClass=='owncloud' ? 'file' : $logClass); call_user_func(array($logger, 'init')); return new Log($logger); diff --git a/settings/Controller/LogSettingsController.php b/settings/Controller/LogSettingsController.php index ce4913c247..23e0fba902 100644 --- a/settings/Controller/LogSettingsController.php +++ b/settings/Controller/LogSettingsController.php @@ -93,8 +93,8 @@ class LogSettingsController extends Controller { */ 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, + 'data' => \OC\Log\File::getEntries($count, $offset), + 'remain' => count(\OC\Log\File::getEntries(1, $offset + $count)) !== 0, ]); } @@ -106,7 +106,7 @@ class LogSettingsController extends Controller { * @return StreamResponse */ public function download() { - $resp = new StreamResponse(\OC\Log\Owncloud::getLogFilePath()); + $resp = new StreamResponse(\OC\Log\File::getLogFilePath()); $resp->addHeader('Content-Type', 'application/octet-stream'); $resp->addHeader('Content-Disposition', 'attachment; filename="nextcloud.log"'); return $resp; diff --git a/settings/admin.php b/settings/admin.php index 11d3a3f40d..a458c813c1 100644 --- a/settings/admin.php +++ b/settings/admin.php @@ -44,12 +44,13 @@ OC_Util::addScript('files', 'jquery.fileupload'); \OC::$server->getEventDispatcher()->dispatch('OC\Settings\Admin::loadAdditionalScripts'); -$showLog = (\OC::$server->getConfig()->getSystemValue('log_type', 'owncloud') === 'owncloud'); +$logType = \OC::$server->getConfig()->getSystemValue('log_type', 'file'); +$showLog = ($logType === 'file' || $logType === 'owncloud'); $numEntriesToLoad = 3; -$entries = \OC\Log\Owncloud::getEntries($numEntriesToLoad + 1); +$entries = \OC\Log\File::getEntries($numEntriesToLoad + 1); $entriesRemaining = count($entries) > $numEntriesToLoad; $entries = array_slice($entries, 0, $numEntriesToLoad); -$logFilePath = \OC\Log\Owncloud::getLogFilePath(); +$logFilePath = \OC\Log\File::getLogFilePath(); $doesLogFileExist = file_exists($logFilePath); $logFileSize = 0; if($doesLogFileExist) { diff --git a/tests/Core/Command/Log/ManageTest.php b/tests/Core/Command/Log/ManageTest.php index 6fb83347f2..cf4506a64e 100644 --- a/tests/Core/Command/Log/ManageTest.php +++ b/tests/Core/Command/Log/ManageTest.php @@ -154,7 +154,7 @@ class ManageTest extends TestCase { public function testGetConfiguration() { $this->config->expects($this->at(0)) ->method('getSystemValue') - ->with('log_type', 'owncloud') + ->with('log_type', 'file') ->willReturn('log_type_value'); $this->config->expects($this->at(1)) ->method('getSystemValue') diff --git a/tests/Core/Command/Log/OwnCloudTest.php b/tests/Core/Command/Log/OwnCloudTest.php index e0445a5cfd..8f217cce65 100644 --- a/tests/Core/Command/Log/OwnCloudTest.php +++ b/tests/Core/Command/Log/OwnCloudTest.php @@ -22,7 +22,7 @@ namespace Tests\Core\Command\Log; -use OC\Core\Command\Log\OwnCloud; +use OC\Core\Command\Log\File; use Test\TestCase; class OwnCloudTest extends TestCase { @@ -45,7 +45,7 @@ class OwnCloudTest extends TestCase { $this->consoleInput = $this->getMock('Symfony\Component\Console\Input\InputInterface'); $this->consoleOutput = $this->getMock('Symfony\Component\Console\Output\OutputInterface'); - $this->command = new OwnCloud($config); + $this->command = new File($config); } public function testEnable() { @@ -55,7 +55,7 @@ class OwnCloudTest extends TestCase { ])); $this->config->expects($this->once()) ->method('setSystemValue') - ->with('log_type', 'owncloud'); + ->with('log_type', 'file'); self::invokePrivate($this->command, 'execute', [$this->consoleInput, $this->consoleOutput]); } @@ -99,7 +99,7 @@ class OwnCloudTest extends TestCase { public function testGetConfiguration() { $this->config->method('getSystemValue') ->will($this->returnValueMap([ - ['log_type', 'owncloud', 'log_type_value'], + ['log_type', 'file', 'log_type_value'], ['datadirectory', \OC::$SERVERROOT.'/data', '/data/directory/'], ['logfile', '/data/directory/nextcloud.log', '/var/log/nextcloud.log'], ['log_rotate_size', 0, 5 * 1024 * 1024], @@ -107,7 +107,7 @@ class OwnCloudTest extends TestCase { $this->consoleOutput->expects($this->at(0)) ->method('writeln') - ->with('Log backend ownCloud: disabled'); + ->with('Log backend file: disabled'); $this->consoleOutput->expects($this->at(1)) ->method('writeln') ->with('Log file: /var/log/nextcloud.log'); diff --git a/tests/lib/Log/OwncloudTest.php b/tests/lib/Log/OwncloudTest.php index e19063a83f..3835048fe5 100644 --- a/tests/lib/Log/OwncloudTest.php +++ b/tests/lib/Log/OwncloudTest.php @@ -17,7 +17,7 @@ namespace Test\Log; -use OC\Log\Owncloud; +use OC\Log\File; use Test\TestCase; /** @@ -37,7 +37,7 @@ class OwncloudTest extends TestCase $this->restore_logdateformat = $config->getSystemValue('logdateformat'); $config->setSystemValue("logfile", $config->getSystemValue('datadirectory') . "/logtest"); - Owncloud::init(); + File::init(); } protected function tearDown() { $config = \OC::$server->getConfig(); @@ -51,7 +51,7 @@ class OwncloudTest extends TestCase } else { $config->deleteSystemValue("restore_logdateformat"); } - Owncloud::init(); + File::init(); parent::tearDown(); } @@ -62,7 +62,7 @@ class OwncloudTest extends TestCase # set format & write log line $config->setSystemValue('logdateformat', 'u'); - Owncloud::write('test', 'message', \OCP\Util::ERROR); + File::write('test', 'message', \OCP\Util::ERROR); # read log line $handle = @fopen($config->getSystemValue('logfile'), 'r'); From 32f5073f9f72179f85a2957e8df5a05c4e2c08d6 Mon Sep 17 00:00:00 2001 From: Thomas Pulzer Date: Fri, 22 Jul 2016 14:38:44 +0200 Subject: [PATCH 2/4] Reverted the default syslog tag to avoid breaking existing systems. --- lib/private/Log/Syslog.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/private/Log/Syslog.php b/lib/private/Log/Syslog.php index 7397825031..c6ea0a4035 100644 --- a/lib/private/Log/Syslog.php +++ b/lib/private/Log/Syslog.php @@ -38,7 +38,7 @@ class Syslog { * Init class data */ public static function init() { - openlog(\OC::$server->getSystemConfig()->getValue("syslog_tag", "Nextcloud"), LOG_PID | LOG_CONS, LOG_USER); + openlog(\OC::$server->getSystemConfig()->getValue("syslog_tag", "ownCloud"), LOG_PID | LOG_CONS, LOG_USER); // Close at shutdown register_shutdown_function('closelog'); } From b058639a8a120d57c8eeacb1aecc51c6b027c4c4 Mon Sep 17 00:00:00 2001 From: Thomas Pulzer Date: Fri, 22 Jul 2016 14:45:33 +0200 Subject: [PATCH 3/4] Changed code style and made use of '===' comparison. --- lib/private/Log.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/private/Log.php b/lib/private/Log.php index 2d06e62f54..0a707f3d4e 100644 --- a/lib/private/Log.php +++ b/lib/private/Log.php @@ -105,7 +105,10 @@ class Log implements ILogger { if($logger === null) { // TODO: Drop backwards compatibility for config in the future $logType = $this->config->getValue('log_type', 'file'); - $this->logger = 'OC\\Log\\'.ucfirst($logType=='owncloud' ? 'file' : $logType); + if($logType==='owncloud') { + $logType = 'file'; + } + $this->logger = 'OC\\Log\\'.ucfirst($logType); call_user_func(array($this->logger, 'init')); } else { $this->logger = $logger; From 61a1d56d2784d407ac0922ea1fcd382b21f3df06 Mon Sep 17 00:00:00 2001 From: Thomas Pulzer Date: Fri, 22 Jul 2016 14:47:50 +0200 Subject: [PATCH 4/4] Renamed test classes for file logging tests. --- tests/Core/Command/Log/{OwnCloudTest.php => FileTest.php} | 2 +- tests/lib/Log/{OwncloudTest.php => FileTest.php} | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) rename tests/Core/Command/Log/{OwnCloudTest.php => FileTest.php} (98%) rename tests/lib/Log/{OwncloudTest.php => FileTest.php} (97%) diff --git a/tests/Core/Command/Log/OwnCloudTest.php b/tests/Core/Command/Log/FileTest.php similarity index 98% rename from tests/Core/Command/Log/OwnCloudTest.php rename to tests/Core/Command/Log/FileTest.php index 8f217cce65..f55f92901d 100644 --- a/tests/Core/Command/Log/OwnCloudTest.php +++ b/tests/Core/Command/Log/FileTest.php @@ -25,7 +25,7 @@ namespace Tests\Core\Command\Log; use OC\Core\Command\Log\File; use Test\TestCase; -class OwnCloudTest extends TestCase { +class FileTest extends TestCase { /** @var \PHPUnit_Framework_MockObject_MockObject */ protected $config; /** @var \PHPUnit_Framework_MockObject_MockObject */ diff --git a/tests/lib/Log/OwncloudTest.php b/tests/lib/Log/FileTest.php similarity index 97% rename from tests/lib/Log/OwncloudTest.php rename to tests/lib/Log/FileTest.php index 3835048fe5..4bd5b6f21a 100644 --- a/tests/lib/Log/OwncloudTest.php +++ b/tests/lib/Log/FileTest.php @@ -21,11 +21,11 @@ use OC\Log\File; use Test\TestCase; /** - * Class OwncloudTest + * Class FileTest * * @group DB */ -class OwncloudTest extends TestCase +class FileTest extends TestCase { private $restore_logfile; private $restore_logdateformat;