2012-04-11 117 views
0

我想知道是否magento在進行導入時在任何地方記錄錯誤行。 如果是這樣,日誌文件在哪裏,以及如何打開它?Magento導入錯誤日誌

回答

0

您可以通過Developer config菜單激活Exception.log文件。

0

在Magento日誌文件SYSTEM.LOG和exception.log文件生成的兩個文件文件都在你找到變種/日誌文件夾

1

綜觀應用方法定義/ Mage.php 你會發現

/** 
    * log facility (??) 
    * 
    * @param string $message 
    * @param integer $level 
    * @param string $file 
    * @param bool $forceLog 
    */ 
    public static function log($message, $level = null, $file = '', $forceLog = false) 
    { 
     if (!self::getConfig()) { 
      return; 
     } 

     try { 
      $logActive = self::getStoreConfig('dev/log/active'); 
      if (empty($file)) { 
       $file = self::getStoreConfig('dev/log/file'); 
      } 
     } 
     catch (Exception $e) { 
      $logActive = true; 
     } 

     if (!self::$_isDeveloperMode && !$logActive && !$forceLog) { 
      return; 
     } 

     static $loggers = array(); 

     $level = is_null($level) ? Zend_Log::DEBUG : $level; 
     $file = empty($file) ? 'system.log' : $file; 

     try { 
      if (!isset($loggers[$file])) { 
       $logDir = self::getBaseDir('var') . DS . 'log'; 
       $logFile = $logDir . DS . $file; 

       if (!is_dir($logDir)) { 
        mkdir($logDir); 
        chmod($logDir, 0777); 
       } 

       if (!file_exists($logFile)) { 
        file_put_contents($logFile, ''); 
        chmod($logFile, 0777); 
       } 

       $format = '%timestamp% %priorityName% (%priority%): %message%' . PHP_EOL; 
       $formatter = new Zend_Log_Formatter_Simple($format); 
       $writerModel = (string)self::getConfig()->getNode('global/log/core/writer_model'); 
       if (!self::$_app || !$writerModel) { 
        $writer = new Zend_Log_Writer_Stream($logFile); 
       } 
       else { 
        $writer = new $writerModel($logFile); 
       } 
       $writer->setFormatter($formatter); 
       $loggers[$file] = new Zend_Log($writer); 
      } 

      if (is_array($message) || is_object($message)) { 
       $message = print_r($message, true); 
      } 

      $loggers[$file]->log($message, $level); 
     } 
     catch (Exception $e) { 
     } 
    } 

所以登錄到自己的代碼,記錄變得容易,因爲

Mage::log($variable, null, 'yourfile.log', 1); 

1.作爲第四個選項是完全選項,並取代日e選項在管理員中關閉註銷,並且將始終強制系統寫入日誌。用於記錄一切都在HTTP_ROOT/VAR完成/日誌/

記錄是默認開啓的,但如果您使用的是自定義的擴展,需要插入記錄,你能做到以上。任何由Magento進行的日誌記錄都將始終存在於var/log/exception.log或var/log/system.log中,但大多數情況都會轉到system.log,除非它是使用throwException()轉到exception.log

1

使用的產品,你會看到錯誤行不,如果你的屏幕上是否存在任何錯誤直接進口.. 其快速的方法來進口的產品

0

我試圖在Mage_ImportExport_Model_Abstract模型設置$_debugMode = true但它並沒有產生任何日誌中我的情況。我正在使用DataFlow方法上傳產品。

然後我所做的就是將Mage_Adminhtml_System_Convert_ProfileController更改爲一點點。裏面batchRunAction()它產生的錯誤,

try { $importData = $batchImportModel->getBatchData(); $adapter->saveRow($importData); } catch (Exception $e) { $errors[] = $e->getMessage(); continue; }

我登錄了$errors陣列與當前的產品SKU得到我需要的東西,即沿, Mage::log($importData['sku'].' - '.$e->getMessage())