How to change PSR log files as only one per day

480 Views Asked by At

I've used PSR logger to get logs. But it will create just one file for all dates. I need to get separate log files to each date. How to do that?

    require_once '../../logger/vendor/autoload.php';
    require_once '../../logger/Psr/Log/Logger.php';
    use Katzgrau\KLogger\Logger;
    use Psr\Log\LogLevel;


    $logPath = '/var/www/html/logs';
    $logger = new Logger($logPath, LogLevel::DEBUG, array ( 'filename' => 'driver_api' , 'extension' => 'log' ));
    $logger->log( $level,  $message , $context);

`

1

There are 1 best solutions below

0
Prasad D. Warnakulasuriya On BEST ANSWER

use log rotator

protected function log_rotate($logpath, $filename, $extention){
    $logfilename = $logpath.'/'.$filename.'.'.$extention; //not needed when included
    $logfilestokeep = 15;
    $fileDate = '';



    if (file_exists($logfilename)) {
        if (date("Y-m-d", filemtime($logfilename)) !== date('Y-m-d')) {
            $fileDate = date("Y-m-d", filemtime($logfilename));
            $newName = $logpath .'/'.$filename. "_" . $fileDate.'.'.$extention;

            if (file_exists($logfilename)) {
                rename($logfilename, $newName);
            }

        }
    }
}