Magento 2 লগ ডাটাবেস অনুসন্ধান


17

ম্যাজেন্টো 1.x এ আমি n98-magerunসমস্ত ডিবি ক্যোয়ারির জন্য একটি লগ ফাইল পাওয়ার জন্য সরঞ্জামটি ব্যবহার করি :

n98-magerun.phar dev:log:db [--on] [--off]

Magento2- এ ডাটাবেস প্রশ্নগুলি লগ করা সম্ভব?

উত্তর:


18

আপনি di.xmlএই ফাইলটিতে আপনার একটি মডিউল যুক্ত করতে পারেন :

<preference for="Magento\Framework\DB\LoggerInterface" type="Magento\Framework\DB\Logger\File"/>

Magento\Framework\DB\Adapter\Pdo\Mysqlবর্গ যে প্রকৃত প্রশ্নের চালানোর জন্য ব্যবহার করা হয় একটি এটির জন সদস্য রয়েছে Magento\Framework\DB\LoggerInterface
ডিফল্টরূপে, এই নির্ভরতার জন্য অগ্রাধিকার সেট করা আছেapp/etc/di.xml

<preference for="Magento\Framework\DB\LoggerInterface" type="Magento\Framework\DB\Logger\Quiet"/>

এটি Magento\Framework\DB\Logger\Quietকিছুই করে না।

<?php
/**
 * Copyright © 2015 Magento. All rights reserved.
 * See COPYING.txt for license details.
 */
namespace Magento\Framework\DB\Logger;

class Quiet implements \Magento\Framework\DB\LoggerInterface
{
    /**
     * {@inheritdoc}
     */
    public function log($str)
    {
    }

    /**
     * {@inheritdoc}
     */
    public function logStats($type, $sql, $bind = [], $result = null)
    {
    }

    /**
     * {@inheritdoc}
     */
    public function critical(\Exception $e)
    {
    }

    /**
     * {@inheritdoc}
     */
    public function startTimer()
    {
    }
}

পছন্দটি পরিবর্তন করুন Magento\Framework\DB\Logger\Fileএবং আপনার লগ ইন করা প্রশ্নগুলি দেখতে হবে var/debug/db.log
ম্যাজেন্টো এই 2 লগার (শান্ত এবং ফাইল) ডিফল্ট কেনার সাথে আসে তবে লগিংয়ের বিভিন্ন প্রশ্নের প্রয়োজনে আপনি নিজের তৈরি করতে পারেন।


এক পক্ষের নোটে, ওপি ম্যাগেরুন কমান্ড ভবিষ্যতে ম্যাগারুন 2-এ সমর্থিত হবে: github.com/netz98/n98-magerun2/issues/75
রাফেল ডিজিটাল পিয়ানিজমে

2
আমি সেট করতে হয়েছে logAllQueries=trueআগে তারা ফাইলে লগ ইন করে রয়েছেন - atwix.com/magento-2/database-queries-logging
টেড

1
দেখে মনে হচ্ছে যে ম্যাজেন্টো ২.২ এটি সমাধানের জন্য একটি স্থাপনা কনফিগারেশন বিকল্প চালু করেছে। LoggerInterfaceদ্বারা প্রয়োগ করা হয় LoggerProxy, না Logger\Quiet, যা পরিবর্তে মোতায়েনের কনফিগারেশন থেকে পরামিতি নেয়। @ ফেলিক্সের উত্তর দেখুন ( magento.stackexchange.com/a/201517/60128 )।
জনিস এলমারিস

23

কমপক্ষে নতুন সংস্করণগুলিতে (এখানে এবং এখন একটি ২.২.১ এর দিকে তাকানো) আপনি করতে পারেন

bin/magento dev:query-log:enable

এবং ব্যাপক লগ ইন আছে var/debug/db.log। এর সাথে আবার লগিং বন্ধ করতে ভুলবেন না

bin/magento dev:query-log:disable


3

সেট logAllQueries=trueকরতে আপনি এর পরামিতি app/etc/di.xmlপরিবর্তন করতে নিম্নলিখিত কোড যুক্ত করতে পারেন :__construct()Magento\Framework\DB\Logger\File

<preference for="Magento\Framework\DB\LoggerInterface" type="Magento\Framework\DB\Logger\File"/>
<type name="Magento\Framework\DB\Logger\File">
    <arguments>
        <argument name="logAllQueries" xsi:type="boolean">true</argument>
    </arguments>
</type>

এছাড়াও আপনি অন্যান্য আবশ্যক পরামিতি উল্লেখ পরিবর্তন করতে পারেন $debugFile, $logQueryTimeএবং $logCallStackযে ভাবে হবে।


0

এখানে আমার di.xml

<?xml version="1.0" ?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
    <preference for="Magento\Framework\DB\LoggerInterface" type="Magento\Framework\DB\Logger\File"/>

    <type name="Magento\Framework\DB\Logger\File">
        <arguments>
            <argument name="logAllQueries" xsi:type="boolean">true</argument>
            <argument name="debugFile" xsi:type="string">sql.log</argument>
        </arguments>
    </type>

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