Error log record number – Wie man das Problem identifiziert

Wenn es etwas schief gehen kann, wird es sicherlich” – Murphys Gesetz geben

Da Fehler unvermeidlich sind, müssen wir lernen, damit umzugehen. Und der beste Weg, um ein Problem zu lösen, ist, seine Ursache zu identifizieren. Es mag auf diese Weise offensichtlich erscheinen, aber es gibt viele Leute, die sich mit der Behandlung nur der Symptome und ihrer Nebenwirkungen beschäftigen und so ihre Herkunft vernachlässigen.

Lassen Sie uns in diesem Beitrag sehen, wie Magento die Log-Dateien erstellt und wie wir die generierten Informationen interpretieren können.

Error log record number

Bis zur Version 1.3.2.4, wann immer das System ein unerwartetes Problem darstellte, wurde es an den Browser gesendet, so dass alle Fragilität der Website jedem, der durchsuchte, aussetzte.

Auf diese Weise hatten Sie zwei Probleme. Der unerwartete Fehler und ein Sicherheitsbruch, der von einem Hacker im Dienst ausgenutzt werden könnte.

Ab Version 1.4.x präsentierte Magento Verbesserungen bei der Handhabung von Fehlern.

There has been an error processing your request
Exception printing is disabled by default for security reasons.
Error log record number: 1000038750

Nun, zusammenfassen die Fehlermeldung ist nicht ganz die Verbesserung, die jeder erwartet, aber es senkt das Risiko von externen Angriffen durch die Ausnutzung der Fehler, die das Problem verursacht.

Interpretation der Nachricht

Viele Leute denken, dass das Problem durch die Nummer des Logs identifiziert wird. Und sie schauen in die Foren und helfen Gruppen für eine Lösung für die xxx Zahl Fehler. Und so funktioniert es nicht. Wenn wir eine kostenlose und angepasste Übersetzung der Fehlerseite machen, werden wir eine Meldung haben, die besagt:

Du hast deine Seitenanfrage verarbeitet
Der Fehler wird auf dieser Seite nicht angezeigt.
SEHEN Sie die Protokolldatei mit der Nummer: xxxxxxxxxxx

Diese Zahl ist zufällig, wahrscheinlich auf einem chronologischen Zähler als Zeitstempel basiert. Diese Nummer ist nur für die Datei zu finden.

Wenn dieser Fehlerbildschirm angezeigt wird, finden Sie im Ordner “var/report/” eine Datei (ohne Erweiterung) in Ihrem Magento Installationsverzeichnis. Öffnen Sie einfach die Datei mit einem Texteditor.

Identifizieren des Problems

Sobald Sie die Datei öffnen, sollte eine Sequenz von Informationen angezeigt werden. Der erste Blick mag etwas unentdeckbares sein, aber mit der Zeit und einigen Tipps können Sie die meisten von ihnen lösen.

a:5:{i:0;s:220:"SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') AND (stock_id=1)' at line 2";i:1;s:5650:"#0 /Ihr Installationsverzeichnis/lib/Zend/Db/Statement.php(300): Zend_Db_Statement_Pdo->_execute(Array)
#1 /Ihr Installationsverzeichnis/lib/Zend/Db/Adapter/Abstract.php(468): Zend_Db_Statement->execute(Array)
#2 /Ihr Installationsverzeichnis/lib/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query('SELECT `catalog...', Array)
#3 /Ihr Installationsverzeichnis/lib/Varien/Db/Adapter/Pdo/Mysql.php(333): Zend_Db_Adapter_Pdo_Abstract->query('SELECT `catalog...', Array)
#4 /Ihr Installationsverzeichnis/lib/Zend/Db/Adapter/Abstract.php(725): Varien_Db_Adapter_Pdo_Mysql->query(Object(Varien_Db_Select), Array)
#5 /Ihr Installationsverzeichnis/app/code/core/Mage/CatalogInventory/Model/Mysql4/Stock/Item.php(53): Zend_Db_Adapter_Abstract->fetchRow(Object(Varien_Db_Select))
#6 /Ihr Installationsverzeichnis/app/code/core/Mage/CatalogInventory/Model/Stock/Item.php(134): Mage_CatalogInventory_Model_Mysql4_Stock_Item->loadByProductId(Object(Mage_CatalogInventory_Model_Stock_Item), Object(Mage_Sales_Model_Quote_Item))
#7 /Ihr Installationsverzeichnis/app/design/adminhtml/default/default/template/sales/order/create/items/grid.phtml(239): Mage_CatalogInventory_Model_Stock_Item->loadByProduct(Object(Mage_Sales_Model_Quote_Item))
#8 /Ihr Installationsverzeichnis/app/code/core/Mage/Core/Block/Template.php(212): include('/Volumes/ Unida...')
#9 /Ihr Installationsverzeichnis/app/code/core/Mage/Core/Block/Template.php(239): Mage_Core_Block_Template->fetchView('adminhtml/defau...')
#10 /Ihr Installationsverzeichnis/app/code/core/Mage/Core/Block/Template.php(253): Mage_Core_Block_Template->renderView()
#11 /Ihr Installationsverzeichnis/app/code/core/Mage/Adminhtml/Block/Template.php(81): Mage_Core_Block_Template->_toHtml()
#12 /Ihr Installationsverzeichnis/app/code/core/Mage/Core/Block/Abstract.php(753): Mage_Adminhtml_Block_Template->_toHtml()
#13 /Ihr Installationsverzeichnis/app/code/core/Mage/Core/Block/Abstract.php(520): Mage_Core_Block_Abstract->toHtml()
#14 /Ihr Installationsverzeichnis/app/code/core/Mage/Core/Block/Abstract.php(467): Mage_Core_Block_Abstract->_getChildHtml('items_grid', true)
#15 /Ihr Installationsverzeichnis/app/design/adminhtml/default/default/template/sales/order/create/items.phtml(32): Mage_Core_Block_Abstract->getChildHtml()
#16 /Ihr Installationsverzeichnis/app/code/core/Mage/Core/Block/Template.php(212): include('/Volumes/ Unida...')
#17 /Ihr Installationsverzeichnis/app/code/core/Mage/Core/Block/Template.php(239): Mage_Core_Block_Template->fetchView('adminhtml/defau...')
#18 /Ihr Installationsverzeichnis/app/code/core/Mage/Core/Block/Template.php(253): Mage_Core_Block_Template->renderView()
#19 /Ihr Installationsverzeichnis/app/code/core/Mage/Adminhtml/Block/Template.php(81): Mage_Core_Block_Template->_toHtml()
#20 /Ihr Installationsverzeichnis/app/code/core/Mage/Adminhtml/Block/Sales/Order/Create/Items.php(67): Mage_Adminhtml_Block_Template->_toHtml()
#21 /Ihr Installationsverzeichnis/app/code/core/Mage/Core/Block/Abstract.php(753): Mage_Adminhtml_Block_Sales_Order_Create_Items->_toHtml()
#22 /Ihr Installationsverzeichnis/app/code/core/Mage/Adminhtml/Block/Sales/Order/Create/Load.php(44): Mage_Core_Block_Abstract->toHtml()
#23 /Ihr Installationsverzeichnis/app/code/core/Mage/Core/Block/Abstract.php(753): Mage_Adminhtml_Block_Sales_Order_Create_Load->_toHtml()
#24 /Ihr Installationsverzeichnis/app/code/core/Mage/Adminhtml/controllers/Sales/Order/CreateController.php(342): Mage_Core_Block_Abstract->toHtml()
#25 /Ihr Installationsverzeichnis/app/code/core/Mage/Core/Controller/Varien/Action.php(418): Mage_Adminhtml_Sales_Order_CreateController->loadBlockAction()
#26 /Ihr Installationsverzeichnis/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(254): Mage_Core_Controller_Varien_Action->dispatch('loadBlock')
#27 /Ihr Installationsverzeichnis/app/code/core/Mage/Core/Controller/Varien/Front.php(177): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#28 /Ihr Installationsverzeichnis/app/code/core/Mage/Core/Model/App.php(304): Mage_Core_Controller_Varien_Front->dispatch()
#29 /Ihr Installationsverzeichnis/app/Mage.php(596): Mage_Core_Model_App->run(Array)
#30 /Ihr Installationsverzeichnis/index.php(78): Mage::run('', 'store')
#31 {main}";s:3:"url";s:186:"/Ihr Installationsverzeichnis/index.php/admin/sales_order_create/loadBlock/key/97888fef60b8f8c3ed3d7b6617e17259/block/search,items,shipping_method,totals,giftmessage,billing_method?isAjax=true";s:11:"script_name";s:33:"/Ihr Installationsverzeichnis/index.php";s:4:"skin";s:5:"admin";}

Schauen wir uns das obige Beispiel an. Magento erstellt eine Folge von Ereignissen mit #, um jeden zurückgelegten Weg zu identifizieren, bis der Fehler aufgetreten ist.

Als die #31 Quelle, zeigt es das Ereignis (url), die den Fehler ausgelöst hat. Obwohl es theoretisch offensichtliche Informationen waren, da Sie in dem Moment navigierten, als der Fehler auftauchte.

Was Ihnen wirklich wichtig ist, ist das, was vor dem #1 kommt. Dies ist die Nachricht, die Sie interpretieren müssen. In diesem Beispiel:

a:5:{i:0;s:220:"SQLSTATE[42000]: Syntax error...

Wenn Sie ein Entwickler sind, werden Sie schnell verstehen, dass dies ein SQL-Fehler ist. Und im Rest der Nachricht ist es immer noch möglich, den Fehler genauer zu identifizieren.

Nun, wenn du die erste Zeile der Log-Datei liest und nichts verstanden hast… gut, sei nicht entmutigt. Jetzt wissen Sie, was Sie suchen, und Sie können Hilfe in Foren und Gruppen anfordern.

Immer auf Alarm

Ein guter Weg, um Probleme zu behandeln ist durch die Arbeit an ihrer Prävention. Und die Tipps unten können helfen.

1. Immer ein Backup von dem, was wirklich wichtig ist. Die Häufigkeit der Erstellung von Backups hängt von der Strömung (Menge) und der (meist finanziellen) Bedeutung ab, die dies darstellen kann. Backups können täglich, wöchentlich, monatlich, zweimonatlich sein.

2. Haben Sie eine Testumgebung. Magento hat mehrere Versionen seines Systems, und es stehen Ihnen unzählige Module zur Verfügung. Lassen Sie sich nicht von der Aufregung los, wenn Sie ein neues Modul in Ihrem Laden laufen lassen… zuerst eine Batterie von Tests in einer simulierten Umgebung machen, und erst nachdem Sie es passieren, müssen Sie es in Ihrem Laden homologieren. Nimm diesen Tipp ernst, die meisten Probleme werden durch inkompatible Module verursacht.

3. Nach Änderungen an Konfigurationsdateien, Modulen und/oder Vorlagen aktualisieren Sie Ihren System- und Browser-Cache. Und vergessen Sie nicht, die Daten neu zu erfassen, wenn Magento anfordert. Es kann passieren, dass Sie eine inkonsistente Änderung anwenden und das System stellt kein Problem sofort dar, weil es weiterhin mit Cache-Dateien arbeitet, und Monate später erscheint das Problem “nichts”.

4. Nach dem Lesen der Protokolldatei brauchst du es nicht mehr, du kannst die Datei aus dem Ordner “var/report/” problemlos löschen. Aber seien Sie proaktiv, warten Sie nicht auf das Problem, um zu Ihnen zu kommen. Machen Sie es sich zur Gewohnheit, dieses Verzeichnis von Zeit zu Zeit zu überprüfen, da ein Problem von einigen Seitenbesuchern “entdeckt” werden kann, und nicht jeder wird sich mit dem Laden in Verbindung setzen, um Ihnen mitzuteilen, dass ein Versandproblem aufgetreten ist.

5. Lernen Sie um Hilfe zu bitten. Nachrichten in Foren mit dem Titel “URGENT” werden nicht helfen. Beginnen Sie mit dem Suchfeld im Forum mit Schlüsselwörtern, die Ihr Problem identifizieren, sehen Sie, ob jemand bereits das gleiche Problem erlebt hat und es in der Lage war, es zu lösen. Wenn nicht, öffnen Sie ein neues Thema und setzen Sie einen Titel, der selbsterklärend ist. Ihre Chancen, Hilfe zu bekommen und anderen zu helfen, wird nur zunehmen.

Erfolg!