. * */ namespace Friendica\Core\Logger\Factory; use Friendica\Core\Config\Capability\IManageConfigValues; use Friendica\Core\Logger\Type\ProfilerLogger as ProfilerLoggerClass; use Friendica\Util\Profiler; use Psr\Log\LoggerInterface; /** * The logger factory for the ProfilerLogger * * @see ProfilerLoggerClass */ class ProfilerLogger extends AbstractLoggerTypeFactory { /** * Wraps a given Logger with profiling information in case profiling is enabled * * @param IManageConfigValues $config The system configuration * @param LoggerInterface $logger The given logger class, which should get wrapped * @param Profiler $profiler The profiler utility * * @return LoggerInterface The PSR-3 compliant logger instance */ public function create(IManageConfigValues $config, LoggerInterface $logger, Profiler $profiler): LoggerInterface { if ($config->get('system', 'profiling') ?? false) { return $logger; } else { return new ProfilerLoggerClass($logger, $profiler); } } }