আমরা ম্যাজেন্টো 2 এর লগ ফাইলটিতে অ্যারে ভেরিয়েবল কীভাবে মুদ্রণ করতে পারি?


14

আমি লগ ফাইলে অ্যারে ভেরিয়েবলের বিষয়বস্তু মুদ্রণের চেষ্টা করছি।

ম্যাজেন্টো 1 এ এটি ব্যবহার করা সম্ভব হয়েছিল Mage::log(print_r($arr, 1), null, 'logfile.log');

ম্যাজেন্টো 2 এর জন্য, ক্লাস ফাইলে আমি নিম্নলিখিত কোডটি লিখেছি:

protected $_logger;

    public function __construct(\Psr\Log\LoggerInterface $logger) {
        $this->_logger = $logger;
    }


private function getValuesAsHtmlList(\Magento\Framework\Object $object) {
        $options = $this->getOptions($object);
       //$this->_logger->addDebug($options );
        $this->_logger->log(100,null,$options);
    }

আমি যখন ক্যাশে সাফ করার পরে কোডটি কার্যকর করি তখন Debug.log& system.logফাইলগুলি অ্যারের সামগ্রীগুলি প্রদর্শন করে না।

কারও সম্পর্কে এ সম্পর্কে কিছু ধারণা থাকলে দয়া করে শেয়ার করুন।

উত্তর:


17

ধরুন আপনার অ্যারে হয়

$a = array ('a' => 'apple', 'b' => 'banana', 'c' => array ('x', 'y', 'z'));

তারপরে আপনার লগ ফাইলে সঠিক অ্যারে ফর্ম্যাট লিখতে আপনাকে কোডের নীচে লিখতে হবে

$this->_logger->log(100,print_r($a,true));

এটি আপনার লগ ফাইল মুদ্রণ করবে

[2015-11-09 06:58:27] main.DEBUG: Array
(
    [a] => apple
    [b] => banana
    [c] => Array
        (
            [0] => x
            [1] => y
            [2] => z
        )

)
 {"is_exception":false} []

10

লগ পদ্ধতির ঘোষণা দেখুন

public function  \Psr\Log\LoggerInterface::log($level, $message, array $context = array());

সুতরাং, আপনার মত কোড প্রয়োজন

$this->_logger->log(100, json_encode($options));

আমি জেসন এনকোডিংয়ের পরিবর্তে নিজেই মুদ্রণ_আর ($ বিকল্পগুলি, সত্য) করব। তবে পছন্দগুলি \ o /
ব্যারি কার্লিয়ন

4
আরও ভাল:$this->_logger->debug(json_encode($options));
নেভভারমাইন্ড

2

এই পদ্ধতিটি আমার পক্ষে ভাল কাজ করে।

$this->logger->info(print_r($myArray, true));

তারপরে আপনার system.logফাইলটি পরীক্ষা করুন।


0
protected $_logger;

    public function __construct(\Psr\Log\LoggerInterface $logger) {
        $this->_logger = $logger;
    }

public function logs(){
  $level='log';
$this->_logger->log($level,'errorlog1234', array( array('test1'=>'123', 'test2' => '456'), array('a'=>'b') ));

}

এটি ব্যবহার করে এটি অ্যারে মুদ্রণ করবে। পরীক্ষিত!


0

অ্যারের জন্য এবং অবজেক্ট কেবল ব্যবহার করুন

public function __construct(\Psr\Log\LoggerInterface $logger) {
        $this->_logger = $logger;
    }

public function logs(){

$this->logger->info(print_r($orderData, true));
}

এবং /var/log/debug.logফাইলের আউটপুট পরীক্ষা করে দেখুন


0

আমি দেখি কোর ফাইলটি var_export ব্যবহার করে:

//File: vendor/magento/module-paypal/Model/AbstractIpn.php
/**
 * Log debug data to file
 *
 * @return void
 */
protected function _debug()
{
    if ($this->_config && $this->_config->getValue('debug')) {
        $this->logger->debug(var_export($this->_debugData, true));
    }
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.