Magento2 自定义log

1.创建log文件

app/code/Magenest/CustomLog/Logger/Logger.php

<?php
namespace Magenest\CustomLog\Logger;

class Logger extends \Monolog\Logger
{

}

app/code/Magenest/CustomLog/Logger/Handler.php

<?php
namespace Magenest\CustomLog\Logger;

use Monolog\Logger;

class Handler extends \Magento\Framework\Logger\Handler\Base
{
   /**
    * Logging level
    * @var int
    */
   protected $loggerType = Logger::NOTICE;

   /**
    * File name
    * @var string
    */
   protected $fileName = '/var/log/magenest_custom_log.log';
}

文件名/var/log/magenest_custom_log。日志是magento根文件夹的相对路径,这意味着您的日志将存储在<magento_root>/var/log/magenest_custom_log.log下
变量loggerType定义了可以应用的日志级别。
Monolog/Logger具有以下常量:

DEBUG = 100
INFO = 200
NOTICE = 250
WARNING = 300
ERROR = 400
CRITICAL = 500
ALERT = 550
EMERGENCY = 600

2.定义logger

app/code/Magenest/CustomLog/etc/di.xml

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/ObjectManager/etc/config.xsd">
   <type name="Magenest\CustomLog\Logger\Handler">
       <arguments>
           <argument name="filesystem" xsi:type="object">Magento\Framework\Filesystem\Driver\File</argument>
       </arguments>
   </type>
   <type name="Magenest\CustomLog\Logger\Logger">
       <arguments>
           <argument name="name" xsi:type="string">Magenest_Custom_Log</argument>
           <argument name="handlers"  xsi:type="array">
               <item name="system" xsi:type="object">Magenest\CustomLog\Logger\Handler</item>
           </argument>
       </arguments>
   </type>
</config>

3.测试
app/code/Magenest/CustomLog/Controller/Index/Index.php

<?php
namespace Magenest\CustomLog\Controller\Index;

use Magenest\CustomLog\Logger\Logger;
use Magento\Framework\App\Action\Action;
use Magento\Framework\App\Action\Context;
use Magento\Framework\View\Result\PageFactory;

class Index extends Action
{
   /**
    * Index action
    *
    * @return $this
    */
   /** @var PageFactory */
   protected $resultPageFactory;

   /**
    * @var Logger
    */
   protected $logger;

   public function __construct(
       Context $context,
       PageFactory $resultPageFactory,
       Logger $logger
   ){
       $this->resultPageFactory = $resultPageFactory;
       $this->logger = $logger;
       parent::__construct($context);
   }

   public function execute()
   {
       $this->logger->error('Log Error');
       $this->logger->emergency('Log Emergency');
       $this->logger->info('Log Info');
       $this->logger->debug('Log Debug');
       $resultPage = $this->resultPageFactory->create();
       return $resultPage;
   }
}

查看magenest_custom_log.log文件


image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容