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,
|
||||
|
||||
// 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',
|
||||
|
||||
// max_batch_queue (Integer)
|
||||
|
|
|
@ -8,6 +8,7 @@ use Friendica\Network\HTTPException\InternalServerErrorException;
|
|||
use Friendica\Util\Introspection;
|
||||
use Friendica\Util\Logger\Monolog\FriendicaDevelopHandler;
|
||||
use Friendica\Util\Logger\Monolog\FriendicaIntrospectionProcessor;
|
||||
use Friendica\Util\Logger\StreamLogger;
|
||||
use Friendica\Util\Logger\SyslogLogger;
|
||||
use Friendica\Util\Logger\VoidLogger;
|
||||
use Friendica\Util\Logger\WorkerLogger;
|
||||
|
@ -54,13 +55,18 @@ class LoggerFactory
|
|||
}
|
||||
|
||||
$introspection = new Introspection(self::$ignoreClassList);
|
||||
$level = $config->get('system', 'loglevel');
|
||||
|
||||
switch ($config->get('system', 'logger_adapter', 'monolog')) {
|
||||
case 'syslog':
|
||||
$level = $config->get('system', 'loglevel');
|
||||
|
||||
case 'syslog':
|
||||
$logger = new SyslogLogger($channel, $introspection, $profiler, $level);
|
||||
break;
|
||||
|
||||
case 'stream':
|
||||
$logger = new StreamLogger($channel, $introspection, $profiler, $level);
|
||||
break;
|
||||
|
||||
case 'monolog':
|
||||
default:
|
||||
$loggerTimeZone = new \DateTimeZone('UTC');
|
||||
|
@ -73,7 +79,6 @@ class LoggerFactory
|
|||
$logger->pushProcessor(new FriendicaIntrospectionProcessor($introspection, LogLevel::DEBUG));
|
||||
|
||||
$stream = $config->get('system', 'logfile');
|
||||
$level = $config->get('system', 'loglevel');
|
||||
|
||||
$loglevel = self::mapLegacyConfigDebugLevel((string)$level);
|
||||
static::addStreamHandler($logger, $stream, $loglevel);
|
||||
|
|
|
@ -99,7 +99,7 @@ abstract class AbstractFriendicaLogger implements LoggerInterface
|
|||
public function emergency($message, array $context = array())
|
||||
{
|
||||
$stamp1 = microtime(true);
|
||||
$this->addEntry(LogLevel::EMERGENCY, $message, $context);
|
||||
$this->addEntry(LogLevel::EMERGENCY, (string) $message, $context);
|
||||
$this->profiler->saveTimestamp($stamp1, 'file', System::callstack());
|
||||
}
|
||||
|
||||
|
@ -109,7 +109,7 @@ abstract class AbstractFriendicaLogger implements LoggerInterface
|
|||
public function alert($message, array $context = array())
|
||||
{
|
||||
$stamp1 = microtime(true);
|
||||
$this->addEntry(LogLevel::ALERT, $message, $context);
|
||||
$this->addEntry(LogLevel::ALERT, (string) $message, $context);
|
||||
$this->profiler->saveTimestamp($stamp1, 'file', System::callstack());
|
||||
}
|
||||
|
||||
|
@ -119,7 +119,7 @@ abstract class AbstractFriendicaLogger implements LoggerInterface
|
|||
public function critical($message, array $context = array())
|
||||
{
|
||||
$stamp1 = microtime(true);
|
||||
$this->addEntry(LogLevel::CRITICAL, $message, $context);
|
||||
$this->addEntry(LogLevel::CRITICAL, (string) $message, $context);
|
||||
$this->profiler->saveTimestamp($stamp1, 'file', System::callstack());
|
||||
}
|
||||
|
||||
|
@ -129,7 +129,7 @@ abstract class AbstractFriendicaLogger implements LoggerInterface
|
|||
public function error($message, array $context = array())
|
||||
{
|
||||
$stamp1 = microtime(true);
|
||||
$this->addEntry(LogLevel::ERROR, $message, $context);
|
||||
$this->addEntry(LogLevel::ERROR, (string) $message, $context);
|
||||
$this->profiler->saveTimestamp($stamp1, 'file', System::callstack());
|
||||
}
|
||||
|
||||
|
@ -139,7 +139,7 @@ abstract class AbstractFriendicaLogger implements LoggerInterface
|
|||
public function warning($message, array $context = array())
|
||||
{
|
||||
$stamp1 = microtime(true);
|
||||
$this->addEntry(LogLevel::WARNING, $message, $context);
|
||||
$this->addEntry(LogLevel::WARNING, (string) $message, $context);
|
||||
$this->profiler->saveTimestamp($stamp1, 'file', System::callstack());
|
||||
}
|
||||
|
||||
|
@ -149,7 +149,7 @@ abstract class AbstractFriendicaLogger implements LoggerInterface
|
|||
public function notice($message, array $context = array())
|
||||
{
|
||||
$stamp1 = microtime(true);
|
||||
$this->addEntry(LogLevel::NOTICE, $message, $context);
|
||||
$this->addEntry(LogLevel::NOTICE, (string) $message, $context);
|
||||
$this->profiler->saveTimestamp($stamp1, 'file', System::callstack());
|
||||
}
|
||||
|
||||
|
@ -159,7 +159,7 @@ abstract class AbstractFriendicaLogger implements LoggerInterface
|
|||
public function info($message, array $context = array())
|
||||
{
|
||||
$stamp1 = microtime(true);
|
||||
$this->addEntry(LogLevel::INFO, $message, $context);
|
||||
$this->addEntry(LogLevel::INFO, (string) $message, $context);
|
||||
$this->profiler->saveTimestamp($stamp1, 'file', System::callstack());
|
||||
}
|
||||
|
||||
|
@ -169,7 +169,7 @@ abstract class AbstractFriendicaLogger implements LoggerInterface
|
|||
public function debug($message, array $context = array())
|
||||
{
|
||||
$stamp1 = microtime(true);
|
||||
$this->addEntry(LogLevel::DEBUG, $message, $context);
|
||||
$this->addEntry(LogLevel::DEBUG, (string) $message, $context);
|
||||
$this->profiler->saveTimestamp($stamp1, 'file', System::callstack());
|
||||
}
|
||||
|
||||
|
@ -179,7 +179,7 @@ abstract class AbstractFriendicaLogger implements LoggerInterface
|
|||
public function log($level, $message, array $context = array())
|
||||
{
|
||||
$stamp1 = microtime(true);
|
||||
$this->addEntry($level, $message, $context);
|
||||
$this->addEntry($level, (string) $message, $context);
|
||||
$this->profiler->saveTimestamp($stamp1, 'file', System::callstack());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,13 +6,20 @@ use Friendica\Util\Introspection;
|
|||
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
|
||||
{
|
||||
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);
|
||||
$this->logLevel = $level;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -85,6 +85,27 @@ class SyslogLogger extends AbstractFriendicaLogger
|
|||
$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 )
|
||||
*
|
||||
|
@ -103,6 +124,14 @@ class SyslogLogger extends AbstractFriendicaLogger
|
|||
return $this->logLevels[$level];
|
||||
}
|
||||
|
||||
/**
|
||||
* Closes the Syslog
|
||||
*/
|
||||
public function close()
|
||||
{
|
||||
closelog();
|
||||
}
|
||||
|
||||
/**
|
||||
* Writes a message to the syslog
|
||||
* @see http://php.net/manual/en/function.syslog.php#refsect1-function.syslog-parameters
|
||||
|
@ -121,14 +150,6 @@ class SyslogLogger extends AbstractFriendicaLogger
|
|||
syslog($priority, $message);
|
||||
}
|
||||
|
||||
/**
|
||||
* Closes the Syslog
|
||||
*/
|
||||
public function close()
|
||||
{
|
||||
closelog();
|
||||
}
|
||||
|
||||
/**
|
||||
* Formats a log record for the syslog output
|
||||
*
|
||||
|
@ -152,25 +173,4 @@ class SyslogLogger extends AbstractFriendicaLogger
|
|||
|
||||
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