Come altri, ho avuto completamente smettere di scrivere i dati dei file di registro.
Origine del bug: i file di registro non scrivono dati
In app/Mage.php
hanno fatto questo cambiamento:
// 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;
}
che sta cercando la configurazione per un elenco separato da virgole di estensioni di file approvate. Tuttavia NON hanno aggiunto questo elenco nella configurazione, nemmeno un'opzione nell'amministratore Mage per noi per configurarlo da soli.
Soluzione al bug - File di registro che non scrivono dati
Per risolvere questo, è sufficiente inserire una voce nel database nella core_config_data
tabella.
INSERT INTO core_config_data VALUES ( NULL, 'default', 0, 'dev/log/allowedFileExtensions', 'log,txt,html,csv' );
Svuota anche la cache degli oggetti e dovresti visualizzare nuovamente i dati che scrivono nei file di registro.
ls -lrt var/log/ | tail
Per riferimento, questo problema riguardava EE 1.14.2.0 con tutte le patch di sicurezza applicate.
Ho aperto un ticket con il supporto Magento su questo problema ma non ho ancora ricevuto risposta da un tecnico. Sono in coda.
Ciò che mi confonde di questo bug è che Magento ha già un metodo per convalidare le estensioni dei file di registro che hanno aggiunto tramite SUPEE-10415 alla fine del 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;
}
Perché non hanno riutilizzato quella logica invece di tentare una reinvenzione incompleta della ruota del ceppo?