Судя по исходникам, это поле используется только в проверке extension_loaded() и больше нигде - если указать незагруженное расширение, то логирование будет отключено.
При этом дальше идёт проверка class_exists(), которая делает предыдущую проверку излишней.
То есть речь идёт именно про расширение PHP, но оно по сути никак не используется. Видимо, предполагалось, что будут писать свои нативные расширения для более эффективного логирования и, возможно, что такое расширение даже будет поставляться с Битриксом. Но я вообще не уверен, что в кастомном расширении можно унаследовать требуемый класс
ExceptionHandlerLog из ядра Битрикса.
Кодpublic function createExceptionHandlerLog()
{
$exceptionHandling = Config\Configuration::getValue("exception_handling");
if ($exceptionHandling === null || !is_array($exceptionHandling) || !isset($exceptionHandling["log"]) || !is_array($exceptionHandling["log"]))
return null;
$options = $exceptionHandling["log"];
$log = null;
if (isset($options["class_name"]) && !empty($options["class_name"]))
{
if (isset($options["extension"]) && !empty($options["extension"]) && !extension_loaded($options["extension"]))
return null;
if (isset($options["required_file"]) && !empty($options["required_file"]) && ($requiredFile = Loader::getLocal($options["required_file"])) !== false)
require_once($requiredFile);
$className = $options["class_name"];
if (!class_exists($className))
return null;
$log = new $className();
}
elseif (isset($options["settings"]) && is_array($options["settings"]))
{
$log = new Diag\FileExceptionHandlerLog();
}
else
{
return null;
}
$log->initialize(
isset($options["settings"]) && is_array($options["settings"]) ? $options["settings"] : array()
);
return $log;
}