📅  最后修改于: 2023-12-03 15:17:29.483000             🧑  作者: Mango
在Magento 2中,为了协助开发人员进行调试和捕获潜在的错误,Magento提供了一个内置的日志记录功能。日志记录非常重要,特别是在生产环境中,因为它可以帮助解决许多常见的问题,并且具有可重复性和持久性。以下是如何在Magento 2中使用日志记录功能的详细说明。
在Magento 2中要创建一个日志记录器,可以使用Magento \ Framework \ Logger \ Monolog类。在页面或块中的构造函数中,可以将此类注入到构造函数中。
namespace Vendor\Module\Controller;
use Magento\Framework\App\Action\Action;
use Magento\Framework\App\Action\Context;
use Magento\Framework\App\Config\ScopeConfigInterface;
use Magento\Framework\Controller\ResultFactory;
use Magento\Framework\Logger\Monolog;
class Test extends Action
{
protected $_logger;
public function __construct(
Context $context,
ScopeConfigInterface $scopeConfig,
Monolog $logger
) {
$this->_logger = $logger;
parent::__construct($context);
}
}
在上面的示例中,已经创建了一个日志记录器$ logger。使用以下代码记录日志消息:
$this->_logger->debug('Debug Message');
$this->_logger->info('Info Message');
$this->_logger->notice('Notice Message');
$this->_logger->warning('Warning Message');
$this->_logger->error('Error Message');
$this->_logger->critical('Critical Message');
在最近的示例中,出现了6个日志记录的级别。您可以根据需要选择相关的级别。
以下是每个级别的概述:
DEBUG:这是最低的日志记录级别,适用于最详细的日志信息,标记为红色。
INFO:适用于更详细的日志记录,标记为绿色。
NOTICE:用于注释低级别警告,标记为黄色。
WARNING:警告记录级别,标记为黄色。
ERROR:错误级别,标记为红色。
CRITICAL:严重错误级别,标记为红色。
在记录日志信息时,还可以将对象的上下文传递给日志记录器,以便在日志消息中获得有关执行操作的更多信息。
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$product = $objectManager->create('\Magento\Catalog\Model\Product')->load(1);
$this->_logger->info('Product Info', ['product' => $product->debug()]);
可以通过以下方式在Magento 2中配置日志记录:
app / code / Vendor / Module / etc / 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">
<type name="Magento\Framework\Logger\Monolog">
<arguments>
<argument name="name" xsi:type="string">custom_logger</argument>
<argument name="handlers" xsi:type="array">
<item name="system" xsi:type="object">Magento\Framework\Logger\Handler\System</item>
<item name="debug" xsi:type="object">Magento\Framework\Logger\Handler\Debug</item>
</argument>
</arguments>
</type>
</config>
app / code / Vendor / Module / etc / log.xml 如下所示:
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Log/etc/log.xsd">
<framework>
<logger>
<handlers>
<handler name="debug">
<type>stream</type>
<path>/var/log/custom.log</path>
<level>DEBUG</level>
</handler>
</handlers>
</logger>
</framework>
</config>
作为Magento 2开发人员,了解如何在Magento 2中记录日志信息是至关重要的。这个内置的日志记录功能,可以很好地帮助我们调试并捕获潜在的错误。我们可以使用Magento \ Framework \ Logger \ Monolog类创建日志记录器,并使用不同的级别记录日志消息,以及将对象的上下文传递给日志记录器。我们可以使用后台设置或配置文件进行日志记录的配置。