Skip to content

Commit

Permalink
Added Systemd.log documentation to config.sample.php
Browse files Browse the repository at this point in the history
Changed name of default system (not systemd) logger from ownCloud to Nextcloud, to be consistent
Fixed license per #9760 (comment)
Pulled upstream updates

Signed-off-by: Johannes Ernst <jernst@indiecomputing.com>
  • Loading branch information
jernst authored and blizzz committed Jun 29, 2018
1 parent 0a65e62 commit 72340b2
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 11 deletions.
22 changes: 15 additions & 7 deletions config/config.sample.php
Original file line number Diff line number Diff line change
Expand Up @@ -710,18 +710,24 @@
*/

/**
* 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``
*/
Expand All @@ -738,7 +744,9 @@
/**
* 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',
Expand Down
2 changes: 1 addition & 1 deletion lib/private/Log/Syslog.php
Original file line number Diff line number Diff line change
Expand Up @@ -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() {
Expand Down
16 changes: 13 additions & 3 deletions lib/private/Log/Systemdlog.php
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -22,6 +22,7 @@

namespace OC\Log;

use OC\HintException;
use OCP\ILogger;
use OCP\IConfig;
use OCP\Log\IWriter;
Expand Down Expand Up @@ -50,19 +51,28 @@ 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
*/
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);
}
}

0 comments on commit 72340b2

Please sign in to comment.