Changed name of default system (not systemd) logger from ownCloud to Nextcloud, to be consistent Fixed license per https://github.com/nextcloud/server/pull/9760#discussion_r195026784 Pulled upstream updates Signed-off-by: Johannes Ernst <jernst@indiecomputing.com>tags/v14.0.0beta1
@@ -710,18 +710,24 @@ $CONFIG = array( | |||
*/ | |||
/** | |||
* By default the Nextcloud logs are sent to the ``nextcloud.log`` file in the | |||
* default Nextcloud data directory. | |||
* If syslogging is desired, set this parameter to ``syslog``. | |||
* Setting this parameter to ``errorlog`` will use the PHP error_log function | |||
* for logging. | |||
* This parameter determines where the Nextcloud logs are sent. | |||
* ``file``: the logs are written to file ``nextcloud.log`` in the default | |||
* Nextcloud data directory. The log file can be changed with parameter | |||
* ``logfile``. | |||
* ``syslog``: the logs are sent to the system log. This requires a syslog daemon | |||
* to be active. | |||
* ``errorlog``: the logs are sent to the PHP ``error_log`` function. | |||
* ``systemd``: the logs are sent to the Systemd journal. This requires a system | |||
* that runs Systemd and the Systemd journal. The PHP extension ``systemd`` | |||
* must be installed and active. | |||
* | |||
* Defaults to ``file`` | |||
*/ | |||
'log_type' => 'file', | |||
/** | |||
* Log file path for the Nextcloud logging type. | |||
* Name of the file to which the Nextcloud logs are written if parameter | |||
* ``log_type`` is set to ``file``. | |||
* | |||
* Defaults to ``[datadirectory]/nextcloud.log`` | |||
*/ | |||
@@ -738,7 +744,9 @@ $CONFIG = array( | |||
/** | |||
* If you maintain different instances and aggregate the logs, you may want | |||
* to distinguish between them. ``syslog_tag`` can be set per instance | |||
* with a unique id. Only available if ``log_type`` is set to ``syslog``. | |||
* with a unique id. Only available if ``log_type`` is set to ``syslog`` or | |||
* ``systemd``. | |||
* | |||
* The default value is ``Nextcloud``. | |||
*/ | |||
'syslog_tag' => 'Nextcloud', |
@@ -39,7 +39,7 @@ class Syslog implements IWriter { | |||
]; | |||
public function __construct(IConfig $config) { | |||
openlog($config->getSystemValue('syslog_tag', 'ownCloud'), LOG_PID | LOG_CONS, LOG_USER); | |||
openlog($config->getSystemValue('syslog_tag', 'Nextcloud'), LOG_PID | LOG_CONS, LOG_USER); | |||
} | |||
public function __destruct() { |
@@ -4,7 +4,7 @@ | |||
* | |||
* @author Johannes Ernst <jernst@indiecomputing.com> | |||
* | |||
* @license AGPL-3.0 | |||
* @license GNU AGPL version 3 or any later version | |||
* | |||
* This code is free software: you can redistribute it and/or modify | |||
* it under the terms of the GNU Affero General Public License, version 3, | |||
@@ -22,6 +22,7 @@ | |||
namespace OC\Log; | |||
use OC\HintException; | |||
use OCP\ILogger; | |||
use OCP\IConfig; | |||
use OCP\Log\IWriter; | |||
@@ -50,11 +51,20 @@ class Systemdlog implements IWriter { | |||
ILogger::FATAL => 2, | |||
]; | |||
protected $syslogId; | |||
public function __construct(IConfig $config) { | |||
if(!function_exists('sd_journal_send')) { | |||
throw new HintException( | |||
'PHP extension php-systemd is not available.', | |||
'Please install and enable PHP extension systemd if you wish to log to the Systemd journal.'); | |||
} | |||
$this->syslogId = $config->getSystemValue('syslog_tag', 'Nextcloud'); | |||
} | |||
/** | |||
* write a message in the log | |||
* Write a message to the log. | |||
* @param string $app | |||
* @param string $message | |||
* @param int $level | |||
@@ -62,7 +72,7 @@ class Systemdlog implements IWriter { | |||
public function write(string $app, $message, int $level) { | |||
$journal_level = $this->levels[$level]; | |||
sd_journal_send('PRIORITY='.$journal_level, | |||
'SYSLOG_IDENTIFIER=nextcloud', | |||
'SYSLOG_IDENTIFIER='.$this->syslogId, | |||
'MESSAGE={'.$app.'} '.$message); | |||
} | |||
} |