Magento导入错误日志

Magento导入错误日志,magento,Magento,我想知道magento在执行导入时是否在任何位置记录错误行。 如果是,日志文件在哪里?如何打开它?您可以通过开发者配置菜单激活Exception.log文件 在magento中,为log system.log文件和exception.log文件生成了两个文件,这两个文件都位于var/log文件夹中查看app/Mage.php中的方法定义 你会发现 /** * log facility (??) * * @param string $message *

我想知道magento在执行导入时是否在任何位置记录错误行。
如果是,日志文件在哪里?如何打开它?

您可以通过开发者配置菜单激活Exception.log文件

在magento中,为log system.log文件和exception.log文件生成了两个文件,这两个文件都位于var/log文件夹中

查看app/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完全是选项,它取代了在管理中关闭登录的选项,并将始终强制系统写入您的日志。所有日志记录都在HTTP_ROOT/var/log中完成/


默认情况下,日志记录处于打开状态,但如果您使用的是自定义扩展,并且需要插入日志记录,则可以执行上述操作。Magento的任何日志记录都将始终位于var/log/exception.log或var/log/system.log中,但大多数内容将转到system.log,除非它是使用throwException()的内容,而throwException()将转到exception.log。使用直接导入产品如果屏幕上存在任何错误,您将看到错误行no。。
它导入产品的快速方法

我尝试在
Mage\u ImportExport\u Model\u Abstract
模型中设置
$\u debugMode=true
,但在我的例子中它没有创建任何日志。我使用数据流方法上传产品

然后我做的是稍微更改一下
Mage\u Adminhtml\u System\u Convert\u ProfileController
。在
batchRunAction()
内部,它生成以下错误

试试看{
$importData=$batchImportModel->getBatchData();
$adapter->saveRow($importData);
}捕获(例外$e){
$errors[]=$e->getMessage();
继续;
}

我将
$errors
数组与当前产品sku一起记录,以获取我所需的,即。,
Mage::log($importData['sku'].-'.$e->getMessage())