繁体   English   中英

Magento在system.log中添加调试跟踪?

[英]Magento add debug trace in system.log?

此错误使填充system.log不断:

2016-03-27T13:59:10+00:00 ERR (3): Warning: simplexml_load_string(): Entity: line 12: parser error : Premature end of data in tag config line 2  in /home/xxxx/public_html/lib/Varien/Simplexml/Config.php on line 510

每隔几分钟或几小时。 为了找到罪魁祸首,我试图在Config.php中添加它:

file_put_contents('/home/xxxx/public_html/xml_errors/'.sha1(microtime(true)).'.txt', $string . PHP_EOL . '=====' . PHP_EOL . print_r(debug_backtrace(), true));

在Config.php的510行之前:

$xml = simplexml_load_string($string, $this->_elementClass);

由于我的商店非常繁忙,因此每秒创建5-10个文件的速度非常快,而且我仍然不知道如何查明实际上会发出警告的$string

我如何自定义system.log以给出警告的调试跟踪,以便可以跟踪传递给Config.php的xml字符串的实际来源?

否则任何其他查找无效XML源的建议将不胜感激!

通过添加到有问题的行中,我可以进行追溯:

$xml = simplexml_load_string($string, $this->_elementClass);

像这样:

set_error_handler("warning_handler", E_WARNING);
$xml = simplexml_load_string($string, $this->_elementClass);
restore_error_handler();

然后在Config.php文件的末尾添加一个独立的函数:

function warning_handler($errno, $errstr, $errfile, $errline) {
    file_put_contents('/home/xxxx/public_html/xml_errors/'.sha1(microtime(true)).'.txt', print_r(debug_backtrace(), true));
}

当然,您必须手动创建文件夹xml_errors。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM