在M1版本,写日志比较方便直接用Mage::Log('sss',null,'test.log')发酵,但在M2里面,却没有那么方便,所以记录一下吧,大概有几种

一、直接写入log文件,日志记录在var/log的system.log与debug.log里面

$logger = \Magento\Framework\App\ObjectManager::getInstance()->get(\Psr\Log\LoggerInterface::class);
$logger->info('message');
#如需要输出数组,可用
$logger->log('100',json_encode($array));



->info可以换成emergency、critical、error、warning、notice、alert、debug、info、log对应不同的级别

二、\Psr\Log\LoggerInterface 指定文件名字



$logger = \Magento\Framework\App\ObjectManager::getInstance()->get(\Psr\Log\LoggerInterface::class);
$logger->pushHandler(new \Monolog\Handler\StreamHandler(BP.'/var/log/custom.log'));

$logger->info('test');
$logger->log('100',json_encode($array));#打印数组

三、使用zend库

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