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.
This commit is contained in:
Thomas Pulzer 2016-07-22 11:44:19 +02:00
parent 4b4990c48f
commit ba3f4f118e
13 changed files with 37 additions and 31 deletions

View File

@ -569,7 +569,7 @@ $CONFIG = array(
* Setting this parameter to ``errorlog`` will use the PHP error_log function * Setting this parameter to ``errorlog`` will use the PHP error_log function
* for logging. * for logging.
*/ */
'log_type' => 'owncloud', 'log_type' => 'file',
/** /**
* Log file path for the Nextcloud logging type. * Log file path for the Nextcloud logging type.

View File

@ -31,7 +31,7 @@ use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface; use Symfony\Component\Console\Output\OutputInterface;
class OwnCloud extends Command { class File extends Command {
/** @var IConfig */ /** @var IConfig */
protected $config; protected $config;
@ -43,8 +43,8 @@ class OwnCloud extends Command {
protected function configure() { protected function configure() {
$this $this
->setName('log:owncloud') ->setName('log:file')
->setDescription('manipulate ownCloud logging backend') ->setDescription('manipulate logging backend')
->addOption( ->addOption(
'enable', 'enable',
null, null,
@ -70,7 +70,7 @@ class OwnCloud extends Command {
$toBeSet = []; $toBeSet = [];
if ($input->getOption('enable')) { if ($input->getOption('enable')) {
$toBeSet['log_type'] = 'owncloud'; $toBeSet['log_type'] = 'file';
} }
if ($file = $input->getOption('file')) { if ($file = $input->getOption('file')) {
@ -89,12 +89,14 @@ class OwnCloud extends Command {
} }
// display config // 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'; $enabledText = 'enabled';
} else { } else {
$enabledText = 'disabled'; $enabledText = 'disabled';
} }
$output->writeln('Log backend ownCloud: '.$enabledText); $output->writeln('Log backend file: '.$enabledText);
$dataDir = $this->config->getSystemValue('datadirectory', \OC::$SERVERROOT.'/data'); $dataDir = $this->config->getSystemValue('datadirectory', \OC::$SERVERROOT.'/data');
$defaultLogFile = rtrim($dataDir, '/').'/nextcloud.log'; $defaultLogFile = rtrim($dataDir, '/').'/nextcloud.log';

View File

@ -34,7 +34,7 @@ use Symfony\Component\Console\Output\OutputInterface;
class Manage extends Command { class Manage extends Command {
const DEFAULT_BACKEND = 'owncloud'; const DEFAULT_BACKEND = 'file';
const DEFAULT_LOG_LEVEL = 2; const DEFAULT_LOG_LEVEL = 2;
const DEFAULT_TIMEZONE = 'UTC'; const DEFAULT_TIMEZONE = 'UTC';
@ -54,7 +54,7 @@ class Manage extends Command {
'backend', 'backend',
null, null,
InputOption::VALUE_REQUIRED, InputOption::VALUE_REQUIRED,
'set the logging backend [owncloud, syslog, errorlog]' 'set the logging backend [file, syslog, errorlog]'
) )
->addOption( ->addOption(
'level', 'level',

View File

@ -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\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(); $view = new \OC\Files\View();
$util = new \OC\Encryption\Util( $util = new \OC\Encryption\Util(

View File

@ -103,7 +103,9 @@ class Log implements ILogger {
// FIXME: Add this for backwards compatibility, should be fixed at some point probably // FIXME: Add this for backwards compatibility, should be fixed at some point probably
if($logger === null) { 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')); call_user_func(array($this->logger, 'init'));
} else { } else {
$this->logger = $logger; $this->logger = $logger;

View File

@ -39,7 +39,7 @@ namespace OC\Log;
* Log is saved at data/nextcloud.log (on default) * Log is saved at data/nextcloud.log (on default)
*/ */
class Owncloud { class File {
static protected $logFile; static protected $logFile;
/** /**

View File

@ -38,7 +38,7 @@ class Syslog {
* Init class data * Init class data
*/ */
public static function init() { 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 // Close at shutdown
register_shutdown_function('closelog'); register_shutdown_function('closelog');
} }

View File

@ -364,8 +364,9 @@ class Server extends ServerContainer implements IServerContainer {
); );
}); });
$this->registerService('Logger', function (Server $c) { $this->registerService('Logger', function (Server $c) {
$logClass = $c->query('AllConfig')->getSystemValue('log_type', 'owncloud'); $logClass = $c->query('AllConfig')->getSystemValue('log_type', 'file');
$logger = 'OC\\Log\\' . ucfirst($logClass); // TODO: Drop backwards compatibility for config in the future
$logger = 'OC\\Log\\' . ucfirst($logClass=='owncloud' ? 'file' : $logClass);
call_user_func(array($logger, 'init')); call_user_func(array($logger, 'init'));
return new Log($logger); return new Log($logger);

View File

@ -93,8 +93,8 @@ class LogSettingsController extends Controller {
*/ */
public function getEntries($count=50, $offset=0) { public function getEntries($count=50, $offset=0) {
return new JSONResponse([ return new JSONResponse([
'data' => \OC\Log\Owncloud::getEntries($count, $offset), 'data' => \OC\Log\File::getEntries($count, $offset),
'remain' => count(\OC\Log\Owncloud::getEntries(1, $offset + $count)) !== 0, 'remain' => count(\OC\Log\File::getEntries(1, $offset + $count)) !== 0,
]); ]);
} }
@ -106,7 +106,7 @@ class LogSettingsController extends Controller {
* @return StreamResponse * @return StreamResponse
*/ */
public function download() { 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-Type', 'application/octet-stream');
$resp->addHeader('Content-Disposition', 'attachment; filename="nextcloud.log"'); $resp->addHeader('Content-Disposition', 'attachment; filename="nextcloud.log"');
return $resp; return $resp;

View File

@ -44,12 +44,13 @@ OC_Util::addScript('files', 'jquery.fileupload');
\OC::$server->getEventDispatcher()->dispatch('OC\Settings\Admin::loadAdditionalScripts'); \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; $numEntriesToLoad = 3;
$entries = \OC\Log\Owncloud::getEntries($numEntriesToLoad + 1); $entries = \OC\Log\File::getEntries($numEntriesToLoad + 1);
$entriesRemaining = count($entries) > $numEntriesToLoad; $entriesRemaining = count($entries) > $numEntriesToLoad;
$entries = array_slice($entries, 0, $numEntriesToLoad); $entries = array_slice($entries, 0, $numEntriesToLoad);
$logFilePath = \OC\Log\Owncloud::getLogFilePath(); $logFilePath = \OC\Log\File::getLogFilePath();
$doesLogFileExist = file_exists($logFilePath); $doesLogFileExist = file_exists($logFilePath);
$logFileSize = 0; $logFileSize = 0;
if($doesLogFileExist) { if($doesLogFileExist) {

View File

@ -154,7 +154,7 @@ class ManageTest extends TestCase {
public function testGetConfiguration() { public function testGetConfiguration() {
$this->config->expects($this->at(0)) $this->config->expects($this->at(0))
->method('getSystemValue') ->method('getSystemValue')
->with('log_type', 'owncloud') ->with('log_type', 'file')
->willReturn('log_type_value'); ->willReturn('log_type_value');
$this->config->expects($this->at(1)) $this->config->expects($this->at(1))
->method('getSystemValue') ->method('getSystemValue')

View File

@ -22,7 +22,7 @@
namespace Tests\Core\Command\Log; namespace Tests\Core\Command\Log;
use OC\Core\Command\Log\OwnCloud; use OC\Core\Command\Log\File;
use Test\TestCase; use Test\TestCase;
class OwnCloudTest extends TestCase { class OwnCloudTest extends TestCase {
@ -45,7 +45,7 @@ class OwnCloudTest extends TestCase {
$this->consoleInput = $this->getMock('Symfony\Component\Console\Input\InputInterface'); $this->consoleInput = $this->getMock('Symfony\Component\Console\Input\InputInterface');
$this->consoleOutput = $this->getMock('Symfony\Component\Console\Output\OutputInterface'); $this->consoleOutput = $this->getMock('Symfony\Component\Console\Output\OutputInterface');
$this->command = new OwnCloud($config); $this->command = new File($config);
} }
public function testEnable() { public function testEnable() {
@ -55,7 +55,7 @@ class OwnCloudTest extends TestCase {
])); ]));
$this->config->expects($this->once()) $this->config->expects($this->once())
->method('setSystemValue') ->method('setSystemValue')
->with('log_type', 'owncloud'); ->with('log_type', 'file');
self::invokePrivate($this->command, 'execute', [$this->consoleInput, $this->consoleOutput]); self::invokePrivate($this->command, 'execute', [$this->consoleInput, $this->consoleOutput]);
} }
@ -99,7 +99,7 @@ class OwnCloudTest extends TestCase {
public function testGetConfiguration() { public function testGetConfiguration() {
$this->config->method('getSystemValue') $this->config->method('getSystemValue')
->will($this->returnValueMap([ ->will($this->returnValueMap([
['log_type', 'owncloud', 'log_type_value'], ['log_type', 'file', 'log_type_value'],
['datadirectory', \OC::$SERVERROOT.'/data', '/data/directory/'], ['datadirectory', \OC::$SERVERROOT.'/data', '/data/directory/'],
['logfile', '/data/directory/nextcloud.log', '/var/log/nextcloud.log'], ['logfile', '/data/directory/nextcloud.log', '/var/log/nextcloud.log'],
['log_rotate_size', 0, 5 * 1024 * 1024], ['log_rotate_size', 0, 5 * 1024 * 1024],
@ -107,7 +107,7 @@ class OwnCloudTest extends TestCase {
$this->consoleOutput->expects($this->at(0)) $this->consoleOutput->expects($this->at(0))
->method('writeln') ->method('writeln')
->with('Log backend ownCloud: disabled'); ->with('Log backend file: disabled');
$this->consoleOutput->expects($this->at(1)) $this->consoleOutput->expects($this->at(1))
->method('writeln') ->method('writeln')
->with('Log file: /var/log/nextcloud.log'); ->with('Log file: /var/log/nextcloud.log');

View File

@ -17,7 +17,7 @@
namespace Test\Log; namespace Test\Log;
use OC\Log\Owncloud; use OC\Log\File;
use Test\TestCase; use Test\TestCase;
/** /**
@ -37,7 +37,7 @@ class OwncloudTest extends TestCase
$this->restore_logdateformat = $config->getSystemValue('logdateformat'); $this->restore_logdateformat = $config->getSystemValue('logdateformat');
$config->setSystemValue("logfile", $config->getSystemValue('datadirectory') . "/logtest"); $config->setSystemValue("logfile", $config->getSystemValue('datadirectory') . "/logtest");
Owncloud::init(); File::init();
} }
protected function tearDown() { protected function tearDown() {
$config = \OC::$server->getConfig(); $config = \OC::$server->getConfig();
@ -51,7 +51,7 @@ class OwncloudTest extends TestCase
} else { } else {
$config->deleteSystemValue("restore_logdateformat"); $config->deleteSystemValue("restore_logdateformat");
} }
Owncloud::init(); File::init();
parent::tearDown(); parent::tearDown();
} }
@ -62,7 +62,7 @@ class OwncloudTest extends TestCase
# set format & write log line # set format & write log line
$config->setSystemValue('logdateformat', 'u'); $config->setSystemValue('logdateformat', 'u');
Owncloud::write('test', 'message', \OCP\Util::ERROR); File::write('test', 'message', \OCP\Util::ERROR);
# read log line # read log line
$handle = @fopen($config->getSystemValue('logfile'), 'r'); $handle = @fopen($config->getSystemValue('logfile'), 'r');