cleanup sysloglogger
This commit is contained in:
parent
25b6db6aca
commit
22f1983cc0
5 changed files with 56 additions and 44 deletions
|
@ -215,7 +215,7 @@ return [
|
||||||
'local_tags' => false,
|
'local_tags' => false,
|
||||||
|
|
||||||
// logger_adapter (String)
|
// logger_adapter (String)
|
||||||
// Sets the logging adapter of Friendica globally (monolog, syslog)
|
// Sets the logging adapter of Friendica globally (monolog, syslog, stream)
|
||||||
'logger_adapter' => 'monolog',
|
'logger_adapter' => 'monolog',
|
||||||
|
|
||||||
// max_batch_queue (Integer)
|
// max_batch_queue (Integer)
|
||||||
|
|
|
@ -8,6 +8,7 @@ use Friendica\Network\HTTPException\InternalServerErrorException;
|
||||||
use Friendica\Util\Introspection;
|
use Friendica\Util\Introspection;
|
||||||
use Friendica\Util\Logger\Monolog\FriendicaDevelopHandler;
|
use Friendica\Util\Logger\Monolog\FriendicaDevelopHandler;
|
||||||
use Friendica\Util\Logger\Monolog\FriendicaIntrospectionProcessor;
|
use Friendica\Util\Logger\Monolog\FriendicaIntrospectionProcessor;
|
||||||
|
use Friendica\Util\Logger\StreamLogger;
|
||||||
use Friendica\Util\Logger\SyslogLogger;
|
use Friendica\Util\Logger\SyslogLogger;
|
||||||
use Friendica\Util\Logger\VoidLogger;
|
use Friendica\Util\Logger\VoidLogger;
|
||||||
use Friendica\Util\Logger\WorkerLogger;
|
use Friendica\Util\Logger\WorkerLogger;
|
||||||
|
@ -54,13 +55,18 @@ class LoggerFactory
|
||||||
}
|
}
|
||||||
|
|
||||||
$introspection = new Introspection(self::$ignoreClassList);
|
$introspection = new Introspection(self::$ignoreClassList);
|
||||||
|
$level = $config->get('system', 'loglevel');
|
||||||
|
|
||||||
switch ($config->get('system', 'logger_adapter', 'monolog')) {
|
switch ($config->get('system', 'logger_adapter', 'monolog')) {
|
||||||
case 'syslog':
|
|
||||||
$level = $config->get('system', 'loglevel');
|
|
||||||
|
|
||||||
|
case 'syslog':
|
||||||
$logger = new SyslogLogger($channel, $introspection, $profiler, $level);
|
$logger = new SyslogLogger($channel, $introspection, $profiler, $level);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'stream':
|
||||||
|
$logger = new StreamLogger($channel, $introspection, $profiler, $level);
|
||||||
|
break;
|
||||||
|
|
||||||
case 'monolog':
|
case 'monolog':
|
||||||
default:
|
default:
|
||||||
$loggerTimeZone = new \DateTimeZone('UTC');
|
$loggerTimeZone = new \DateTimeZone('UTC');
|
||||||
|
@ -73,7 +79,6 @@ class LoggerFactory
|
||||||
$logger->pushProcessor(new FriendicaIntrospectionProcessor($introspection, LogLevel::DEBUG));
|
$logger->pushProcessor(new FriendicaIntrospectionProcessor($introspection, LogLevel::DEBUG));
|
||||||
|
|
||||||
$stream = $config->get('system', 'logfile');
|
$stream = $config->get('system', 'logfile');
|
||||||
$level = $config->get('system', 'loglevel');
|
|
||||||
|
|
||||||
$loglevel = self::mapLegacyConfigDebugLevel((string)$level);
|
$loglevel = self::mapLegacyConfigDebugLevel((string)$level);
|
||||||
static::addStreamHandler($logger, $stream, $loglevel);
|
static::addStreamHandler($logger, $stream, $loglevel);
|
||||||
|
|
|
@ -99,7 +99,7 @@ abstract class AbstractFriendicaLogger implements LoggerInterface
|
||||||
public function emergency($message, array $context = array())
|
public function emergency($message, array $context = array())
|
||||||
{
|
{
|
||||||
$stamp1 = microtime(true);
|
$stamp1 = microtime(true);
|
||||||
$this->addEntry(LogLevel::EMERGENCY, $message, $context);
|
$this->addEntry(LogLevel::EMERGENCY, (string) $message, $context);
|
||||||
$this->profiler->saveTimestamp($stamp1, 'file', System::callstack());
|
$this->profiler->saveTimestamp($stamp1, 'file', System::callstack());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -109,7 +109,7 @@ abstract class AbstractFriendicaLogger implements LoggerInterface
|
||||||
public function alert($message, array $context = array())
|
public function alert($message, array $context = array())
|
||||||
{
|
{
|
||||||
$stamp1 = microtime(true);
|
$stamp1 = microtime(true);
|
||||||
$this->addEntry(LogLevel::ALERT, $message, $context);
|
$this->addEntry(LogLevel::ALERT, (string) $message, $context);
|
||||||
$this->profiler->saveTimestamp($stamp1, 'file', System::callstack());
|
$this->profiler->saveTimestamp($stamp1, 'file', System::callstack());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -119,7 +119,7 @@ abstract class AbstractFriendicaLogger implements LoggerInterface
|
||||||
public function critical($message, array $context = array())
|
public function critical($message, array $context = array())
|
||||||
{
|
{
|
||||||
$stamp1 = microtime(true);
|
$stamp1 = microtime(true);
|
||||||
$this->addEntry(LogLevel::CRITICAL, $message, $context);
|
$this->addEntry(LogLevel::CRITICAL, (string) $message, $context);
|
||||||
$this->profiler->saveTimestamp($stamp1, 'file', System::callstack());
|
$this->profiler->saveTimestamp($stamp1, 'file', System::callstack());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -129,7 +129,7 @@ abstract class AbstractFriendicaLogger implements LoggerInterface
|
||||||
public function error($message, array $context = array())
|
public function error($message, array $context = array())
|
||||||
{
|
{
|
||||||
$stamp1 = microtime(true);
|
$stamp1 = microtime(true);
|
||||||
$this->addEntry(LogLevel::ERROR, $message, $context);
|
$this->addEntry(LogLevel::ERROR, (string) $message, $context);
|
||||||
$this->profiler->saveTimestamp($stamp1, 'file', System::callstack());
|
$this->profiler->saveTimestamp($stamp1, 'file', System::callstack());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -139,7 +139,7 @@ abstract class AbstractFriendicaLogger implements LoggerInterface
|
||||||
public function warning($message, array $context = array())
|
public function warning($message, array $context = array())
|
||||||
{
|
{
|
||||||
$stamp1 = microtime(true);
|
$stamp1 = microtime(true);
|
||||||
$this->addEntry(LogLevel::WARNING, $message, $context);
|
$this->addEntry(LogLevel::WARNING, (string) $message, $context);
|
||||||
$this->profiler->saveTimestamp($stamp1, 'file', System::callstack());
|
$this->profiler->saveTimestamp($stamp1, 'file', System::callstack());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -149,7 +149,7 @@ abstract class AbstractFriendicaLogger implements LoggerInterface
|
||||||
public function notice($message, array $context = array())
|
public function notice($message, array $context = array())
|
||||||
{
|
{
|
||||||
$stamp1 = microtime(true);
|
$stamp1 = microtime(true);
|
||||||
$this->addEntry(LogLevel::NOTICE, $message, $context);
|
$this->addEntry(LogLevel::NOTICE, (string) $message, $context);
|
||||||
$this->profiler->saveTimestamp($stamp1, 'file', System::callstack());
|
$this->profiler->saveTimestamp($stamp1, 'file', System::callstack());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -159,7 +159,7 @@ abstract class AbstractFriendicaLogger implements LoggerInterface
|
||||||
public function info($message, array $context = array())
|
public function info($message, array $context = array())
|
||||||
{
|
{
|
||||||
$stamp1 = microtime(true);
|
$stamp1 = microtime(true);
|
||||||
$this->addEntry(LogLevel::INFO, $message, $context);
|
$this->addEntry(LogLevel::INFO, (string) $message, $context);
|
||||||
$this->profiler->saveTimestamp($stamp1, 'file', System::callstack());
|
$this->profiler->saveTimestamp($stamp1, 'file', System::callstack());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -169,7 +169,7 @@ abstract class AbstractFriendicaLogger implements LoggerInterface
|
||||||
public function debug($message, array $context = array())
|
public function debug($message, array $context = array())
|
||||||
{
|
{
|
||||||
$stamp1 = microtime(true);
|
$stamp1 = microtime(true);
|
||||||
$this->addEntry(LogLevel::DEBUG, $message, $context);
|
$this->addEntry(LogLevel::DEBUG, (string) $message, $context);
|
||||||
$this->profiler->saveTimestamp($stamp1, 'file', System::callstack());
|
$this->profiler->saveTimestamp($stamp1, 'file', System::callstack());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -179,7 +179,7 @@ abstract class AbstractFriendicaLogger implements LoggerInterface
|
||||||
public function log($level, $message, array $context = array())
|
public function log($level, $message, array $context = array())
|
||||||
{
|
{
|
||||||
$stamp1 = microtime(true);
|
$stamp1 = microtime(true);
|
||||||
$this->addEntry($level, $message, $context);
|
$this->addEntry($level, (string) $message, $context);
|
||||||
$this->profiler->saveTimestamp($stamp1, 'file', System::callstack());
|
$this->profiler->saveTimestamp($stamp1, 'file', System::callstack());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,13 +6,20 @@ use Friendica\Util\Introspection;
|
||||||
use Friendica\Util\Profiler;
|
use Friendica\Util\Profiler;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A Logger instance for logging into a stream
|
* A Logger instance for logging into a stream (file, stdout, stderr)
|
||||||
*/
|
*/
|
||||||
class StreamLogger extends AbstractFriendicaLogger
|
class StreamLogger extends AbstractFriendicaLogger
|
||||||
{
|
{
|
||||||
public function __construct($channel, Introspection $introspection, Profiler $profiler)
|
/**
|
||||||
|
* The minimum loglevel at which this logger will be triggered
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
private $logLevel;
|
||||||
|
|
||||||
|
public function __construct($channel, Introspection $introspection, Profiler $profiler, $level)
|
||||||
{
|
{
|
||||||
parent::__construct($channel, $introspection, $profiler);
|
parent::__construct($channel, $introspection, $profiler);
|
||||||
|
$this->logLevel = $level;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -85,6 +85,27 @@ class SyslogLogger extends AbstractFriendicaLogger
|
||||||
$this->introspection->addClasses(array(self::class));
|
$this->introspection->addClasses(array(self::class));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds a new entry to the syslog
|
||||||
|
*
|
||||||
|
* @param int $level
|
||||||
|
* @param string $message
|
||||||
|
* @param array $context
|
||||||
|
*
|
||||||
|
* @throws InternalServerErrorException if the syslog isn't available
|
||||||
|
*/
|
||||||
|
protected function addEntry($level, $message, $context = [])
|
||||||
|
{
|
||||||
|
$logLevel = $this->mapLevelToPriority($level);
|
||||||
|
|
||||||
|
if ($logLevel >= $this->logLevel) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$formattedLog = $this->formatLog($logLevel, $message, $context);
|
||||||
|
$this->write($logLevel, $formattedLog);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Maps the LogLevel (@see LogLevel ) to a SysLog priority (@see http://php.net/manual/en/function.syslog.php#refsect1-function.syslog-parameters )
|
* Maps the LogLevel (@see LogLevel ) to a SysLog priority (@see http://php.net/manual/en/function.syslog.php#refsect1-function.syslog-parameters )
|
||||||
*
|
*
|
||||||
|
@ -103,6 +124,14 @@ class SyslogLogger extends AbstractFriendicaLogger
|
||||||
return $this->logLevels[$level];
|
return $this->logLevels[$level];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Closes the Syslog
|
||||||
|
*/
|
||||||
|
public function close()
|
||||||
|
{
|
||||||
|
closelog();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Writes a message to the syslog
|
* Writes a message to the syslog
|
||||||
* @see http://php.net/manual/en/function.syslog.php#refsect1-function.syslog-parameters
|
* @see http://php.net/manual/en/function.syslog.php#refsect1-function.syslog-parameters
|
||||||
|
@ -121,14 +150,6 @@ class SyslogLogger extends AbstractFriendicaLogger
|
||||||
syslog($priority, $message);
|
syslog($priority, $message);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Closes the Syslog
|
|
||||||
*/
|
|
||||||
public function close()
|
|
||||||
{
|
|
||||||
closelog();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Formats a log record for the syslog output
|
* Formats a log record for the syslog output
|
||||||
*
|
*
|
||||||
|
@ -152,25 +173,4 @@ class SyslogLogger extends AbstractFriendicaLogger
|
||||||
|
|
||||||
return $logMessage;
|
return $logMessage;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Adds a new entry to the syslog
|
|
||||||
*
|
|
||||||
* @param int $level
|
|
||||||
* @param string $message
|
|
||||||
* @param array $context
|
|
||||||
*
|
|
||||||
* @throws InternalServerErrorException if the syslog isn't available
|
|
||||||
*/
|
|
||||||
protected function addEntry($level, $message, $context = [])
|
|
||||||
{
|
|
||||||
$logLevel = $this->mapLevelToPriority($level);
|
|
||||||
|
|
||||||
if ($logLevel >= $this->logLevel) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$formattedLog = $this->formatLog($level, $message, $context);
|
|
||||||
$this->write($level, $formattedLog);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue