Create Module/Namespace/etc/di.xml and add below config in the file.
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<!-- Log generation process -->
<type name="Module\Namespace\Logger\Handler">
<arguments>
<argument name="filesystem" xsi:type="object">Magento\Framework\Filesystem\Driver\File</argument>
</arguments>
</type>
<type name="Module\Namespace\Logger\Logger">
<arguments>
<argument name="name" xsi:type="string">Module/Namespace</argument>
<argument name="handlers" xsi:type="array">
<item name="debug" xsi:type="object">Module\Namespace\Logger\Handler</item>
</argument>
</arguments>
</type>
Create Module/Namespace/Logger/Handler.php
namespace Module\Namespace\Logger;
use Magento\Framework\Filesystem\DriverInterface;
use Magento\Framework\Logger\Handler\Base;
use Magento\Framework\Stdlib\DateTime\TimezoneInterface;
class Handler extends Base {
public function __construct(
DriverInterface $filesystem
) {
$this->fileName = "/var/log/pdf.log";
parent::__construct($filesystem);
}
}
Create Module/Namespace/Logger/Logger.php
class Logger extends \Monolog\Logger
{
}
Now use Module\Namespace\Logger\Logger instead of Psr\Log\LoggerInterface;
namespace Module\Namespace\Model;
use Module\Namespace\Logger\Logger;
class Association
{
/**
* @var Logger
*/
protected $logger;
/**
* __construct
*
* @param Logger $logger
*/
public function __construct(
Logger $logger
)
{
$this->logger = $logger;
}
/**
* Generating log
*
* @param string $email
* @param string $name
*/
public function generateLog($email, $name)
{
$logMessage = array(
'Email' => $email,
'Name' => $name
);
$this->logger->log(100, json_encode($logMessage));
}