Magento2 怎么输出日志记录

Posted by

如果开发人员 Magento 没有日志记录的特性,那么调试将会是一场噩梦。日志有助于发现错误及其原因。

Magento 2 提供了三种类型的日志文件 debug.log、exception.log 和 system.log。

Magento2 中自定义模块使用默认日志文件

<?php
 
namespace Codex\Test\Block;
class Test extends \Magento\Framework\View\Element\Template
{
    protected $_logger;
 
    public function __construct(
        \Magento\Backend\Block\Template\Context $context,
        \Psr\Log\LoggerInterface $logger,
        array $data = []
    )
    {        
        $this->_logger = $logger;
        parent::__construct($context, $data);
    }
 
    public function LogData()
    {
        // saved data in var/log/debug.log
        $this->_logger->debug('message goes here');
        // saved data in var/log/system.log
        $this->_logger->info('message goes here');  
    }
}

这些日志文件的大小每天都在变大。如果您将自定义模块日志存储在任何这些日志文件中,那么当出现问题时检查日志将变得非常困难,记录自定义模块数据的理想方式是记录到自定义日志文件中。

Magento2 自定义日志记录

Magento2 中输出日志记录信息可以使用下面方法。

$writer = new \Zend\Log\Writer\Stream(BP . '/var/log/paypal_debug7.log');
$logger = new \Zend\Log\Logger();
$logger->addWriter($writer);
$logger->info('6');

在info里面的参数,只能是输出字符串。需要特别注意。

例如写个公用方法进行调用

日志记录方法

它将在var/log/文件夹下创建一个名为cg_payop.log的日志文件,并在其中记录 “$msg”里面的内容。