You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

64 lines
1.4 KiB

<?php namespace Tests\Support\Log\Handlers;
/**
* Class TestHandler
*
* A simple LogHandler that stores the logs in memory.
* Only used for testing purposes.
*/
class TestHandler extends \CodeIgniter\Log\Handlers\FileHandler
{
/**
* Local storage for logs.
*
* @var array
*/
protected static $logs = [];
/**
* Where would the log be written?
*/
//--------------------------------------------------------------------
public function __construct(array $config)
{
parent::__construct($config);
$this->handles = $config['handles'] ?? [];
$this->destination = $this->path . 'log-' . date('Y-m-d') . '.' . $this->fileExtension;
self::$logs = [];
}
//--------------------------------------------------------------------
/**
* Handles logging the message.
* If the handler returns false, then execution of handlers
* will stop. Any handlers that have not run, yet, will not
* be run.
*
* @param $level
* @param $message
*
* @return boolean
*/
public function handle($level, $message): bool
{
$date = date($this->dateFormat);
self::$logs[] = strtoupper($level) . ' - ' . $date . ' --> ' . $message;
return true;
}
//--------------------------------------------------------------------
public static function getLogs()
{
return self::$logs;
}
//--------------------------------------------------------------------
}