mirror of
https://github.com/friendica/friendica
synced 2025-04-24 01:10:11 +00:00
friendica-6379 Monolog - logfile permission denied
This commit is contained in:
parent
ea218438d2
commit
b56b56ccb6
3 changed files with 47 additions and 13 deletions
|
@ -26,6 +26,7 @@ class LoggerFactory
|
|||
{
|
||||
/**
|
||||
* A list of classes, which shouldn't get logged
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
private static $ignoreClassList = [
|
||||
|
@ -37,8 +38,8 @@ class LoggerFactory
|
|||
/**
|
||||
* Creates a new PSR-3 compliant logger instances
|
||||
*
|
||||
* @param string $channel The channel of the logger instance
|
||||
* @param Configuration $config The config
|
||||
* @param string $channel The channel of the logger instance
|
||||
* @param Configuration $config The config
|
||||
* @param Profiler $profiler The profiler of the app
|
||||
*
|
||||
* @return LoggerInterface The PSR-3 compliant logger instance
|
||||
|
@ -55,8 +56,8 @@ class LoggerFactory
|
|||
}
|
||||
|
||||
$introspection = new Introspection(self::$ignoreClassList);
|
||||
$level = $config->get('system', 'loglevel');
|
||||
$loglevel = self::mapLegacyConfigDebugLevel((string)$level);
|
||||
$level = $config->get('system', 'loglevel');
|
||||
$loglevel = self::mapLegacyConfigDebugLevel((string)$level);
|
||||
|
||||
switch ($config->get('system', 'logger_config', 'stream')) {
|
||||
case 'monolog':
|
||||
|
@ -71,7 +72,10 @@ class LoggerFactory
|
|||
|
||||
$stream = $config->get('system', 'logfile');
|
||||
|
||||
static::addStreamHandler($logger, $stream, $loglevel);
|
||||
// just add a stream in case it's either writable or not file
|
||||
if (!is_file($stream) || is_writable($stream)) {
|
||||
static::addStreamHandler($logger, $stream, $loglevel);
|
||||
}
|
||||
break;
|
||||
|
||||
case 'syslog':
|
||||
|
@ -81,7 +85,12 @@ class LoggerFactory
|
|||
case 'stream':
|
||||
default:
|
||||
$stream = $config->get('system', 'logfile');
|
||||
$logger = new StreamLogger($channel, $stream, $introspection, $loglevel);
|
||||
// just add a stream in case it's either writable or not file
|
||||
if (!is_file($stream) || is_writable($stream)) {
|
||||
$logger = new StreamLogger($channel, $stream, $introspection, $loglevel);
|
||||
} else {
|
||||
$logger = new VoidLogger();
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -105,8 +114,8 @@ class LoggerFactory
|
|||
*
|
||||
* It should never get filled during normal usage of Friendica
|
||||
*
|
||||
* @param string $channel The channel of the logger instance
|
||||
* @param Configuration $config The config
|
||||
* @param string $channel The channel of the logger instance
|
||||
* @param Configuration $config The config
|
||||
* @param Profiler $profiler The profiler of the app
|
||||
*
|
||||
* @return LoggerInterface The PSR-3 compliant logger instance
|
||||
|
@ -120,7 +129,8 @@ class LoggerFactory
|
|||
$stream = $config->get('system', 'dlogfile');
|
||||
$developerIp = $config->get('system', 'dlogip');
|
||||
|
||||
if (!isset($developerIp) || !$debugging) {
|
||||
if ((!isset($developerIp) || !$debugging) &&
|
||||
(!is_file($stream) || is_writable($stream))) {
|
||||
$logger = new VoidLogger();
|
||||
Logger::setDevLogger($logger);
|
||||
return $logger;
|
||||
|
@ -149,7 +159,7 @@ class LoggerFactory
|
|||
break;
|
||||
|
||||
case 'syslog':
|
||||
$logger = new SyslogLogger($channel, $introspection, LogLevel::DEBUG);
|
||||
$logger = new SyslogLogger($channel, $introspection, LogLevel::DEBUG);
|
||||
break;
|
||||
|
||||
case 'stream':
|
||||
|
@ -172,6 +182,7 @@ class LoggerFactory
|
|||
|
||||
/**
|
||||
* Mapping a legacy level to the PSR-3 compliant levels
|
||||
*
|
||||
* @see https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md#5-psrlogloglevel
|
||||
*
|
||||
* @param string $level the level to be mapped
|
||||
|
@ -208,9 +219,9 @@ class LoggerFactory
|
|||
/**
|
||||
* Adding a handler to a given logger instance
|
||||
*
|
||||
* @param LoggerInterface $logger The logger instance
|
||||
* @param mixed $stream The stream which handles the logger output
|
||||
* @param string $level The level, for which this handler at least should handle logging
|
||||
* @param LoggerInterface $logger The logger instance
|
||||
* @param mixed $stream The stream which handles the logger output
|
||||
* @param string $level The level, for which this handler at least should handle logging
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue