সমস্ত Magento এসকিউএল লগ ইন কিভাবে?


23

Magento দ্বারা সম্পাদিত সমস্ত ক্যোয়ারী লগ ইন করার কোন সহজ উপায় আছে?

লক্ষ্যটি কার্যকর করা সমস্ত এসকিউএল মুদ্রণ করা, উদাহরণস্বরূপ পৃষ্ঠা লোডের সময়

উত্তর:


43

আপনি যদি নিশ্চিত হতে চান যে সমস্ত এসকিউএল আসলে লগ হয়েছে, তবে আমি একটি তৃতীয় পক্ষের সফ্টওয়্যার ব্যবহার করার পরামর্শ দিই:

  • নিয়ন প্রোফাইল এসকিউএল আসলে নিখরচায় এবং সূক্ষ্মভাবে কাজ করে
    (নিয়েনের সাথে ম্যাজেন্টো সংযুক্ত করার জন্য আপনার স্থানীয়.এক্সএমএল সম্পাদনা করতে হবে ... এটি সমস্ত ধরণের এসকিউএল প্রক্সির মাধ্যমে যা ঘটে তা লগইন হিসাবে কাজ করে)

বিকল্প একটি নেটিভ Magento / Varien পদ্ধতির নিম্নলিখিত হতে পারে:

  1. সম্পাদন করা lib/Varien/Db/Adapter/Pdo/Mysql.php
  2. নিম্নলিখিত বৈশিষ্ট্যগুলিতে পরিবর্তন করুন true(103 লাইন)
  3. আপনার এখানে একটি লগ ফাইল তৈরি করতে হবে var/debug/pdo_mysql.log

পরিবর্তনের জন্য এখানে লাইন: (মন্তব্যগুলি স্ব-বর্ণনামূলক)

 /**
     * Write SQL debug data to file
     *
     * @var bool
     */
    protected $_debug               = true;

    /**
     * Minimum query duration time to be logged
     *
     * @var float
     */
    protected $_logQueryTime        = 0.05;

    /**
     * Log all queries (ignored minimum query duration time)
     *
     * @var bool
     */
    protected $_logAllQueries       = true;

    /**
     * Add to log call stack data (backtrace)
     *
     * @var bool
     */
    protected $_logCallStack        = true;

লগ উত্পাদিত নীচের মত:

## 2014-06-26 12:18:47
## 10258 ## QUERY
SQL: SELECT `adminnotification_inbox`.* FROM `adminnotification_inbox` WHERE (title = 'Customize your order and invoice numbers to protect your sales using Order Number Customizer by XTENTO.') AND (url = 'http://www.xtento.com/magento-extensions/order-number-customizer.html?utm_source=feed&utm_medium=feed&utm_campaign=order_number_customizer')
AFF: 1
TIME: 0.0008

আপনি সক্ষম করেছেন $_logCallStackসেক্ষেত্রে আপনার একটি ট্র্যাক পার্টও থাকবে

TRACE: #1 Varien_Db_Adapter_Pdo_Mysql#00000000644036ff00007f14137095e6#->_debugStat(2, 'SELECT `adminnot...', array(), &Varien_Db_Statement_Pdo_Mysql#000000006440371700007f14137095e6#) called at [lib/Varien/Db/Adapter/Pdo/Mysql.php:424]
#2 Varien_Db_Adapter_Pdo_Mysql#00000000644036ff00007f14137095e6#->query(&Varien_Db_Select#000000006440371800007f14137095e6#, array()) called at [lib/Zend/Db/Adapter/Abstract.php:753]
#3 Varien_Db_Adapter_Pdo_Mysql[Zend_Db_Adapter_Abstract]#00000000644036ff00007f14137095e6#->fetchRow(&Varien_Db_Select#000000006440371800007f14137095e6#) called at [app/code/core/Mage/AdminNotification/Model/Resource/Inbox.php:116]
#4 Mage_AdminNotification_Model_Resource_Inbox#00000000644034c500007f14137095e6#->parse(&Mage_AdminNotification_Model_Inbox#00000000644034e900007f14137095e6#, array(array('severity' => 4, 'date_added' => '2013-10-23 13:00...', 'title' => 'Customizing your...', 'description' => 'Easily add new c...', 'url' => 'http://www.xtent...'), array('severity' => 4, 'date_added' => '2014-04-09 17:00...', 'title' => 'Customize your o...', 'description' => 'Customize your M...', 'url' => 'http://www.xtent...'), array('severity' => 4, 'date_added' => '2014-05-06 17:00...', 'title' => 'Process orders i...', 'description' => 'Process all your...', 'url' => 'http://www.xtent...'))) called at [app/code/core/Mage/AdminNotification/Model/Inbox.php:118]
#5 Mage_AdminNotification_Model_Inbox#00000000644034e900007f14137095e6#->parse(array(array('severity' => 4, 'date_added' => '2013-10-23 13:00...', 'title' => 'Customizing your...', 'description' => 'Easily add new c...', 'url' => 'http://www.xtent...'), array('severity' => 4, 'date_added' => '2014-04-09 17:00...', 'title' => 'Customize your o...', 'description' => 'Customize your M...', 'url' => 'http://www.xtent...'), array('severity' => 4, 'date_added' => '2014-05-06 17:00...', 'title' => 'Process orders i...', 'description' => 'Process all your...', 'url' => 'http://www.xtent...'))) called at [app/code/local/Xtento/XtCore/Model/Feed.php:57]
#6 Xtento_XtCore_Model_Feed#000000006440348500007f14137095e6#->checkUpdate(&Varien_Event_Observer#00000000644034d900007f14137095e6#) called at [app/code/core/Mage/Core/Model/App.php:1338]
#7 Mage_Core_Model_App#00000000644036ef00007f14137095e6#->_callObserverMethod(&Xtento_XtCore_Model_Feed#000000006440348500007f14137095e6#, 'checkUpdate', &Varien_Event_Observer#00000000644034d900007f14137095e6#) called at [app/code/core/Mage/Core/Model/App.php:1317]
#8 Mage_Core_Model_App#00000000644036ef00007f14137095e6#->dispatchEvent('controller_actio...', array('controller_actio...' => &Fishpig_Wordpress_Adminhtml_WordpressController#000000006440364a00007f14137095e6#)) called at [app/Mage.php:451]
#9 Mage::dispatchEvent('controller_actio...', array('controller_actio...' => &Fishpig_Wordpress_Adminhtml_WordpressController#000000006440364a00007f14137095e6#)) called at [app/code/core/Mage/Core/Controller/Varien/Action.php:528]
#10 Fishpig_Wordpress_Adminhtml_WordpressController[Mage_Core_Controller_Varien_Action]#000000006440364a00007f14137095e6#->preDispatch() called at [app/code/core/Mage/Adminhtml/Controller/Action.php:160]
#11 Fishpig_Wordpress_Adminhtml_WordpressController[Mage_Adminhtml_Controller_Action]#000000006440364a00007f14137095e6#->preDispatch() called at [app/code/core/Mage/Core/Controller/Varien/Action.php:408]
#12 Fishpig_Wordpress_Adminhtml_WordpressController[Mage_Core_Controller_Varien_Action]#000000006440364a00007f14137095e6#->dispatch('checkVersion') called at [app/code/core/Mage/Core/Controller/Varien/Router/Standard.php:250]
#13 Mage_Core_Controller_Varien_Router_Admin[Mage_Core_Controller_Varien_Router_Standard]#00000000644036ae00007f14137095e6#->match(&Mage_Core_Controller_Request_Http#000000006440365c00007f14137095e6#) called at [app/code/core/Mage/Core/Controller/Varien/Front.php:176]
#14 Mage_Core_Controller_Varien_Front#000000006440365700007f14137095e6#->dispatch() called at [app/code/core/Mage/Core/Model/App.php:354]
#15 Mage_Core_Model_App#00000000644036ef00007f14137095e6#->run(array('scope_code' => '', 'scope_type' => 'store', 'options' => array())) called at [app/Mage.php:687]
#16 Mage::run('', 'store') called at [index.php:87]

15

আপনার নিম্নলিখিত নোড দিয়ে জেন্ড এসকিউএল প্রোফাইলার সক্রিয় করুন app/etc/local.xml

<resources>
 <default_setup>
  <connection>
   <profiler>1</profiler>

তারপরে আপনি প্রোফাইল কোডারকে আপনার কোডের কোথাও অ্যাক্সেস করতে এবং সমস্ত সম্পাদিত ক্যোয়ারী সম্পর্কে প্রচুর তথ্য পুনরুদ্ধার করতে পারেন:

$profiler = Mage::getSingleton('core/resource')->getConnection('core_write')->getProfiler();

সহজেই সমস্ত প্রশ্নের আউটপুট করতে:

print_r($profiler->getQueryProfiles());

index.phpপ্রতিটি পৃষ্ঠার নীচে সমস্ত প্রশ্নগুলি দেখতে আপনি এই দুটি লাইনটি যুক্ত করতে পারেন । সচেতন হন যে এটি AJAX অনুরোধগুলিকে JSON প্রতিক্রিয়া ফিরিয়ে দেবে, যাতে আপনি এই কোডটি দিয়ে আবার প্রশ্নগুলি মুদ্রণের পরিবর্তে লগিংয়ের বিষয়টি বিবেচনা করতে পারেন (আবার, শেষে এটি যুক্ত করুন index.php):

$profiler = Mage::getSingleton('core/resource')->getConnection('core_write')->getProfiler();
Mage::log(print_r($profiler->getQueryProfiles(), true), null, 'queries.log', true);

তারপরে আপনি সমস্ত প্রশ্নের সন্ধান পাবেন var/log/queries.log

আপনি ডিবাগিং শেষ করে আবার লাইনগুলি সরাতে ভুলবেন না!


2

আমি 100% নিশ্চিত নই যে এটি প্রতিটি ক্যোয়ারীটি ধরবে, তবে সর্বাধিক ক্যোয়ারী পদ্ধতিতে জেন্ড_ডিব_এডাপ্টার_অ্যাবস্ট্রাক্ট কোয়েরি পদ্ধতিতে চালিত

lib / অনুপস্থিত পার্সি-জাতির প্রাচীন শাস্ত্রগ্রন্থ / ডিবি / অ্যাডাপটর / Abstract.php

এই বিষয়টি মনে রেখে আপনি সাময়িকভাবে কিছু ডিবাগিং স্টেটমেন্ট (আপনার তৈরি করা অনুলিপিটিতে) যুক্ত করতে পারেন

অ্যাপ্লিকেশন / কোড / স্থানীয় / পুরোনো যাদুকর

নিরাপদ হতে)

public function query($sql, $bind = array())
{
    // connect to the database if needed
    $this->_connect();

    // is the $sql a Zend_Db_Select object?
    if ($sql instanceof Zend_Db_Select) {
        if (empty($bind)) {
            $bind = $sql->getBind();
        }

        $sql = $sql->assemble();
    }
    echo '$sql' . "\n<br />\n";
    var_dump($bind);

2
আমি মনে করি আমি একবার অনুরূপ পন্থা ব্যবহার করেছি তবে আমার প্রস্তাবিত পদ্ধতিটি আরও ভাল পেয়েছি :)
ফ্রে

"নিরাপদে থাকার জন্য অস্থায়ীভাবে কিছু ডিবাগিং বিবৃতি যুক্ত করুন"। এই পদ্ধতির মধ্যে নিরাপদ কিছুই নেই।
কেভিন শ্রোয়েডার

2

আপনার যদি মাইএসকিএল সার্ভারে অ্যাক্সেস থাকে এবং আপনার কাছে অন্যান্য প্রকল্প নেই যা অনুসন্ধান চালায়, আপনি মাইএসকিএল থেকে সাধারণ লগ যোগ করার চেষ্টা করতে পারেন। এটি কীভাবে করবেন তা এখানে দেখুন /programming/6479107/how-to-enable-mysql-query-log কারণ এটি যে সমস্ত ক্যোয়ারী লিখেছে তা লগ ফাইলটি খুব দ্রুত বড় হতে পারে, তাই নিশ্চিত হয়ে উঠুন আপনি এটি সম্পন্ন করার পরে এটি বন্ধ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.