어떻게 Magento 2의 로그 파일에 배열 변수를 인쇄 할 수 있습니까?


13

배열 변수 내용을 로그 파일로 인쇄하려고합니다.

마 젠토 1에서는 Mage::log(print_r($arr, 1), null, 'logfile.log');

Magento 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.logsystem.log파일은 배열 내용을 표시하지 않습니다.

누구든지 그것에 대해 알고 있다면 공유하십시오.

답변:


16

배열이 있다고 가정

$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));

json 인코딩 대신 print_r ($ options, true)을 직접 작성했습니다. 그러나 환경 설정 \ o /
Barry Carlyon

4
더 나은 아직 :$this->_logger->debug(json_encode($options));
nevvermind

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.