I've got a simple class that allows me to write to any log file:
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
class Mylog
{
public function __construct($log, $level = 'debug')
{
$this->monolog = new Logger($log);
$level = constant('Logger::'.strtoupper($level));
$this->monolog->pushHandler(new StreamHandler(storage_path('logs/'.$log.'-'.date('Y-m-d').'.txt')), $level);
}
public function __call($method, $arguments)
{
$this->monolog->{$method}($arguments[0]);
}
}
This gives me the error: constant(): Couldn't find constant Logger::DEBUG
However, when pushing the handler, if I replace $level with simply Logger::DEBUG, it works. Why is it not finding the constant when it does, in fact, exist?