2012-04-11 135 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())