Comme d'autres, j'avais des fichiers journaux qui arrêtaient complètement d'écrire des données.
Source du bogue - Les fichiers journaux n'écrivent pas de données
Dans app/Mage.php
ils ont fait ce changement:
// 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;
}
qui cherche dans la configuration une liste séparée par des virgules d'extensions de fichiers approuvées. Cependant, ils n'ont pas ajouté cette liste dans la configuration - pas même une option dans l'administrateur Mage pour que nous puissions la configurer nous-mêmes.
Solution au bogue - les fichiers journaux n'écrivent pas de données
Pour résoudre ce problème, entrez simplement une entrée dans la base de données dans le core_config_data
tableau.
INSERT INTO core_config_data VALUES ( NULL, 'default', 0, 'dev/log/allowedFileExtensions', 'log,txt,html,csv' );
Videz également le cache des objets et vous devriez voir de nouveau l'écriture de données dans les fichiers journaux.
ls -lrt var/log/ | tail
Pour référence, ce problème était sur EE 1.14.2.0 avec tous les correctifs de sécurité appliqués.
J'ai ouvert un ticket avec le support Magento sur ce problème mais je n'ai pas encore reçu de réponse d'un technicien. Je suis dans la file d'attente.
Ce qui me dérange vraiment à propos de ce bogue, c'est que Magento a déjà une méthode pour valider les extensions de fichier journal qu'ils ont ajoutées via SUPEE-10415 fin 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;
}
Pourquoi n'ont-ils pas réutilisé cette logique au lieu de tenter une réinvention incomplète de la roue à grumes?