Browse Source

Added Systemd.log documentation to config.sample.php

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
Johannes Ernst 6 years ago
parent
commit
72340b2230
No account linked to committer's email address
3 changed files with 29 additions and 11 deletions
  1. 15
    7
      config/config.sample.php
  2. 1
    1
      lib/private/Log/Syslog.php
  3. 13
    3
      lib/private/Log/Systemdlog.php

+ 15
- 7
config/config.sample.php View File

@@ -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',

+ 1
- 1
lib/private/Log/Syslog.php View File

@@ -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() {

+ 13
- 3
lib/private/Log/Systemdlog.php View File

@@ -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);
}
}

Loading…
Cancel
Save