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:
parent
4b4990c48f
commit
ba3f4f118e
|
@ -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.
|
||||||
|
|
|
@ -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';
|
|
@ -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',
|
||||||
|
|
|
@ -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(
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
/**
|
/**
|
|
@ -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');
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
|
@ -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')
|
||||||
|
|
|
@ -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');
|
||||||
|
|
|
@ -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');
|
||||||
|
|
Loading…
Reference in New Issue