, (*1)
Simple trait that makes any class able to use PSR-3 loggers.
Installation
composer require arrilot/logs, (*2)
Usage
use Arrilot\Logs\Logs;
class Foo
{
use Logs;
function bar()
{
$this->logger()->error('Error happened in bar!);
$this->logger()->warning('Warning happened in bar!);
// etc
}
}
$foo = new Foo();
$foo->bar(); // Everything is ok, but nothing was logged anywhere because no logger was set.
$foo->setLogger($anyPsr3LoggerHere);
$foo->bar(); // There is a log record in $anyPsr3LoggerHere now.
$foo->setEchoLogger();
$foo->bar(); // An error and a warning are echo'ed to a screen.
// If you are using Monolog\Registry to store loggers, you can simply pass a logger name and the package will grab a logger from the Registry.
$foo->setLogger('application_log');
$foo->bar(); // There is a record in application log.
You can also use Arrilot\Logs\EchoLogger as a separate PSR-3 logger without a trait., (*3)