Diğerleri gibi günlük dosyalarım da veri yazmayı tamamen bıraktı.
Hata kaynağı - günlük dosyaları veri yazma
İçinde app/Mage.php
bu değişikliği yaptılar:
// 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;
}
hangi onaylı dosya uzantıları virgülle ayrılmış listesi için config arıyor. Ancak bu listeyi config 'e eklememişlerdi - Mage Admin' de kendi başımıza yapmamız için bir seçenek bile değil.
Hata Çözüm - Günlük Dosyaları Veri Yazmıyor
Bunu çözmek için, core_config_data
tablodaki veritabanına bir giriş yapmanız yeterlidir .
INSERT INTO core_config_data VALUES ( NULL, 'default', 0, 'dev/log/allowedFileExtensions', 'log,txt,html,csv' );
Nesneler önbelleğini de temizlediğinizde, verileri bir kez daha günlük dosyalarına yazarken görmelisiniz.
ls -lrt var/log/ | tail
Başvuru için, bu sorun tüm güvenlik yamaları uygulandığında EE 1.14.2.0'daydı.
Bu konuda Magento Desteği ile bir bilet açtım ancak henüz bir teknisyenden bir yanıt almadım. Sıradayım.
Bu hata konusunda beni şaşırtan şey, Magento'nun 2017 sonunda SUPEE-10415 aracılığıyla ekledikleri günlük dosya uzantılarını doğrulamak için bir yönteme sahip olduğudur.
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;
}
Eksik bir günlük iadesini yeniden icat etmek yerine neden bu mantığı tekrar kullanmadılar?