Skip to content

Instantly share code, notes, and snippets.

@MagePsycho
Last active March 26, 2016 15:03
Show Gist options
  • Save MagePsycho/2779a6a98a516967d077 to your computer and use it in GitHub Desktop.
Save MagePsycho/2779a6a98a516967d077 to your computer and use it in GitHub Desktop.
Magento 2 - Custom Logger
<?php
namespace MagePsycho\Demo\Helper;
/**
* @category MagePsycho
* @package MagePsycho_Demo
* @author magepsycho@gmail.com
* @website http://www.magepsycho.com
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
*/
class Data extends \Magento\Framework\App\Helper\AbstractHelper
{
const XML_PATH_ENABLED = 'magepsycho_demo/general/enabled';
const XML_PATH_DEBUG = 'magepsycho_demo/general/debug';
/**
* @var \Psr\Log\LoggerInterface
*/
protected $_logger;
/**
* @var \Magento\Framework\Module\ModuleListInterface
*/
protected $_moduleList;
/**
* @param \Magento\Framework\App\Helper\Context $context
* @param \MagePsycho\Demo\Logger\Logger $logger
* @param \Magento\Framework\Module\ModuleListInterface $moduleList
*/
public function __construct(
\Magento\Framework\App\Helper\Context $context,
\MagePsycho\Demo\Logger\Logger $logger,
\Magento\Framework\Module\ModuleListInterface $moduleList
) {
$this->_logger = $logger;
$this->_moduleList = $moduleList;
parent::__construct($context);
}
public function getDebugStatus()
{
return $this->scopeConfig->getValue(
self::XML_PATH_DEBUG,
\Magento\Store\Model\ScopeInterface::SCOPE_STORE
);
}
/**
*
* @param $message
* @param bool|false $useSeparator
*/
public function log($message, $useSeparator = false)
{
if ($this->getDebugStatus()) {
if ($useSeparator) {
$this->_logger->debug(str_repeat('=', 100));
}
$this->_logger->debug($message);
}
}
}
<?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="MagePsycho\Demo\Logger\Handler">
<arguments>
<argument name="filesystem" xsi:type="object">Magento\Framework\Filesystem\Driver\File</argument>
</arguments>
</type>
<type name="MagePsycho\Demo\Logger\Logger">
<arguments>
<argument name="name" xsi:type="string">DemoLoggerHandler</argument>
<argument name="handlers" xsi:type="array">
<item name="debug" xsi:type="object">MagePsycho\Demo\Logger\Handler</item>
</argument>
</arguments>
</type>
</config>
<?php
namespace MagePsycho\Demo\Logger;
class Handler extends \Magento\Framework\Logger\Handler\Base
{
/**
* Logging level
* @var int
*/
protected $loggerType = Logger::DEBUG;
/**
* File name
* @var string
*/
protected $fileName = '/var/log/magepsycho_demo.log';
}
<?php
namespace MagePsycho\Demo\Logger;
class Logger extends \Monolog\Logger
{
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment