উত্তর:
Mage::log(print_r($arr, 1), null, 'logfile.log');
মুদ্রণ_আরতে একটি দ্বিতীয় প্যারামিটার যুক্ত করা মুদ্রিত ভেরিয়েবলের সাথে একটি স্ট্রিং প্রদান করবে।
[সম্পাদনা]
নীচের মন্তব্যের ভিত্তিতে আমি একটি অ্যারে লগ করার জন্য অন্যান্য বিকল্পগুলির অফার দিতে বাধ্য বোধ করি।
Mage::log($arr, null, 'logfile.log');
অথবা অ্যারেতে যদি আপনার স্ট্রিং উপসর্গের প্রয়োজন হয়
Mage::log('prefix'.Zend_Debug::dump($arr, null, false), null, 'logfile.log');
এর দ্বিতীয় প্যারামিটারটি Zend_Debug::dump()
একটি লেবেল। এটি না null
হলে এটি অ্যারে ডাম্পের আগে যুক্ত করা হবে। অর্থের
তৃতীয় প্যারামিটার । যদি এটি হয় তবে ডাম্প ফলাফল প্রতিধ্বনিত হবে, যদি এটি স্ট্রিং হিসাবে ফিরে আসে। আপনার ক্ষেত্রে এটি হওয়া দরকার ।Zend_Debug::dump()
echo
true
false
false
print_r
এখানে দরকার নেই, ম্যাজেন্টোর লগার অ্যারে এবং অবজেক্টগুলিকে স্বয়ংক্রিয়ভাবে ছড়িয়ে দেবে
print_r
চেয়ে আরও ভাল পছন্দ হতে পারে Zend_Debug::dump($var)
।
আপনি কি ঠিক করার চেষ্টা করেছেন:
Mage::log($array, null, 'logfile.log', true);
মাইজ লগ পদ্ধতিতে অ্যারেটি নিজে বাড়ানো উচিত।
পেটার যেমন উল্লেখ করেছে, এটি প্রসারিত হয়েছে, সুতরাং এটি যদি একটি অ্যারে বা অবজেক্ট হয় তবে কোনও প্রিন্ট_আর দরকার নেই। তবে আপনি যদি এটি মিশ্রিত করেন তবে:
Mage::log('my string' . $array);
আপনি একটি সমস্যা পান, কারণ পিএইচপিএস অ্যারে স্ট্রিং রূপান্তরটির অর্থ:
array(... whatever...) -> 'String'
এবং একটি বস্তুর সাথে, পিএইচপি __to স্ট্রিং পদ্ধতিটি কল করার চেষ্টা করে যদি এটি বিদ্যমান না থাকে তবে একটি ত্রুটি নিক্ষেপ করা হয় (আমার মনে হয়)।
এবং রেফারেন্সের জন্য Mage::log()
:
\Mage::log
/app/Mage.php:784
public static function log($message, $level = null, $file = '', $forceLog = false)
{
// ...
// initialize ... blah stuff...
// check wether logging is on, developer mode or logging is forced
try {
// get the file, define the format... more stuff ... blah ...
if (is_array($message) || is_object($message)) {
$message = print_r($message, true);
}
$loggers[$file]->log($message, $level);
}
catch (Exception $e) {
}
}
কিছুই পরীক্ষা করা হয়নি :-)