I wanted to add custom log files in separate folders. I have created one helper to create log and calling every time that helper.
Here is the helper file :
<?php
namespace Custom\Product\Helper;
use Magento\Framework\Filesystem;
class CustomLog {
protected $_fileSystem;
public function __construct(
Filesystem $file_system
){
$this->_fileSystem = $file_system;
}
public function Clog($folder_name,$file_name,$data)
{
$directory = BP.'/var/log/'.$folder_name.'/'.$file_name;
$writer = new \Zend\Log\Writer\Stream(BP . $directory);
$logger = new \Zend\Log\Logger();
$logger->addWriter($writer);
$logger->info($data);
}
}
and I have tried with filesystem also still folder , files are not creating.
Here is the file system code :
public function Clog($folder_name,$file_name,$data)
{
$directory = BP.'/var/log/'.$folder_name;
$writer = $this->_fileSystem->getDirectoryWrite($directory);
$file = $writer->openFile($file_name, 'w');
}
Please help me to resolve this issue .
Best Answer
Follow below steps to create your own custom log file under 'project_dir'/var/log. Step 1: Write Logger class in Logger/Logger.php
Step 2: Write Handler class in Logger/Handler.php
Step 3 : Register Logger in Dependency Injection etc/di.xml
Step 4 : Use the logger in your Magento classes - This is done by Dependency Injection. Below you will find a dummy class which only writes a log entry
Hope its Helps!