Enhance syslog logging

This commit is contained in:
Philipp 2021-12-12 22:45:22 +01:00
parent 36329f9e7e
commit 2413627de9
No known key found for this signature in database
GPG key ID: 24A7501396EB5432
4 changed files with 18 additions and 2 deletions

View file

@ -119,7 +119,7 @@ class Logger
case 'syslog': case 'syslog':
try { try {
$logger = new SyslogLogger($this->channel, $introspection, $loglevel); $logger = new SyslogLogger($this->channel, $introspection, $loglevel, $config->get('system', 'syslog_flags', SyslogLogger::DEFAULT_FLAGS), $config->get('system', 'syslog_facility', SyslogLogger::DEFAULT_FACILITY));
} catch (LogLevelException $exception) { } catch (LogLevelException $exception) {
// If there's a wrong config value for loglevel, try again with standard // If there's a wrong config value for loglevel, try again with standard
$logger = $this->create($database, $config, $profiler, $fileSystem, LogLevel::NOTICE); $logger = $this->create($database, $config, $profiler, $fileSystem, LogLevel::NOTICE);

View file

@ -34,6 +34,11 @@ class SyslogLogger extends AbstractLogger
{ {
const IDENT = 'Friendica'; const IDENT = 'Friendica';
/** @var int The default syslog flags */
const DEFAULT_FLAGS = LOG_PID | LOG_ODELAY | LOG_CONS;
/** @var int The default syslog facility */
const DEFAULT_FACILITY = LOG_USER;
/** /**
* Translates LogLevel log levels to syslog log priorities. * Translates LogLevel log levels to syslog log priorities.
* @var array * @var array
@ -101,7 +106,7 @@ class SyslogLogger extends AbstractLogger
* @throws LogLevelException * @throws LogLevelException
* @throws LoggerException * @throws LoggerException
*/ */
public function __construct($channel, Introspection $introspection, string $level = LogLevel::NOTICE, int $logOpts = LOG_PID, int $logFacility = LOG_USER) public function __construct($channel, Introspection $introspection, string $level = LogLevel::NOTICE, int $logOpts = self::DEFAULT_FLAGS, int $logFacility = self::DEFAULT_FLAGS)
{ {
parent::__construct($channel, $introspection); parent::__construct($channel, $introspection);
$this->logOpts = $logOpts; $this->logOpts = $logOpts;

View file

@ -325,6 +325,14 @@ return [
// Sets the logging adapter of Friendica globally (monolog, syslog, stream) // Sets the logging adapter of Friendica globally (monolog, syslog, stream)
'logger_config' => 'stream', 'logger_config' => 'stream',
// syslog flags (Integer)
// Sets the syslog flags in case 'logger_config' is set to 'syslog'
'syslog_flags' => LOG_CONS | LOG_PID | LOG_ODELAY,
// syslog flags (Integer)
// Sets the syslog facility in case 'logger_config' is set to 'syslog'
'syslog_facility' => LOG_USER,
// maintenance_start (String) // maintenance_start (String)
// Start of the window for the daily maintenance cron call. // Start of the window for the daily maintenance cron call.
// The system timezone is used when no timezone is defined here. // The system timezone is used when no timezone is defined here.

View file

@ -45,6 +45,9 @@ return [
'FRIENDICA_LOGFILE' => ['system', 'logfile'], 'FRIENDICA_LOGFILE' => ['system', 'logfile'],
'FRIENDICA_LOGLEVEL'=> ['system', 'loglevel'], 'FRIENDICA_LOGLEVEL'=> ['system', 'loglevel'],
'FRIENDICA_PROFILING' => ['system', 'profiler'], 'FRIENDICA_PROFILING' => ['system', 'profiler'],
'FRIENDICA_LOGGER' => ['system', 'logger_config'],
'FRIENDICA_SYSLOG_FLAGS' => ['system', 'syslog_flags'],
'FRIENDICA_SYSLOG_FACILITY' => ['system', 'syslog_facility'],
// Caching // Caching
'FRIENDICA_CACHE_DRIVER' => ['system', 'cache_driver'], 'FRIENDICA_CACHE_DRIVER' => ['system', 'cache_driver'],