Como otros, tenía archivos de registro que dejaban de escribir datos por completo.
Origen del error: los archivos de registro no escriben datos
En app/Mage.php
hicieron este cambio:
// Validate file extension before save. Allowed file extensions: log, txt, html, csv
- if (!self::helper('log')->isLogFileExtensionValid($file)) {
+ $_allowedFileExtensions = explode(
+ ',',
+ (string) self::getConfig()->getNode('dev/log/allowedFileExtensions', Mage_Core_Model_Store::DEFAULT_CODE)
+ );
+ $logValidator = new Zend_Validate_File_Extension($_allowedFileExtensions);
+ $logDir = self::getBaseDir('var') . DS . 'log';
+ if (!$logValidator->isValid($logDir . DS . $file)) {
return;
}
que busca en la configuración una lista separada por comas de extensiones de archivo aprobadas. Sin embargo, NO agregaron esta lista en la configuración; ni siquiera una opción en el Administrador de Mage para que podamos configurar esto por nuestra cuenta.
Solución al error: los archivos de registro no escriben datos
Para resolver esto, simplemente haga una entrada en la base de datos en la core_config_data
tabla.
INSERT INTO core_config_data VALUES ( NULL, 'default', 0, 'dev/log/allowedFileExtensions', 'log,txt,html,csv' );
Borre también el caché de objetos y debería ver los datos escritos en los archivos de registro una vez más.
ls -lrt var/log/ | tail
Como referencia, este problema estaba en EE 1.14.2.0 con todos los parches de seguridad aplicados.
Abrí un ticket con el Soporte de Magento sobre este problema, pero aún no he recibido una respuesta de un técnico. Estoy en la cola
Lo que realmente me confunde acerca de este error es que Magento ya tiene un método para validar las extensiones de archivo de registro que agregaron a través de SUPEE-10415 a fines de 2017.
app/code/core/Mage/Log/Helper/Data.php
/**
* Checking if file extensions is allowed. If passed then return true.
*
* @param $file
* @return bool
*/
public function isLogFileExtensionValid($file)
{
$result = false;
$validatedFileExtension = pathinfo($file, PATHINFO_EXTENSION);
if ($validatedFileExtension && in_array($validatedFileExtension, $this->_allowedFileExtensions)) {
$result = true;
}
return $result;
}
¿Por qué no reutilizaron esa lógica en lugar de intentar una reinvención incompleta de la rueda de troncos?