Barebone\Loggers\*

File logger

You only need to supply the filename.

<?php
/* FILE Logger */
$fileLogger = new Barebone\Loggers\FileLogger(filename: TEMP_PATH.'log.txt');
$fileLogger->alert('This is serious!!');

Email logger

Supply email and subject. LogType will be prepended to subject eg [alert] subject

<?php
/* EMAIL Logger */
$emailLogger = new Barebone\Loggers\EmailLogger(email: 'test@test.com',subject: 'Log email');
$emailLogger->emergency('This is serious!!');

Database logger

Supply database pdo, tablename and column

<?php
/* DATABASE Logger */
$db = Registry()->getService('db');
$databaseLogger = new Barebone\Loggers\DatabaseLogger($db->pdo, [
    'database' => 'Backbone',
    'tablename' => 'logger', 
    'column_message' => 'log',
    'column_timestamp' => 'log_timestamp',
    'column_logtype' => 'log_type'
]);
$databaseLogger->debug('This is serious!!');
$databaseLogger->emergency('This is serious!!');
$databaseLogger->alert('This is serious!!');
$databaseLogger->info('This is serious!!');

LoggerAwareTrait

Use Barebone\Loggers\Traits\LoggerAwareTrait in your class to get $this->logger

<?php
class TestTrait implements Barebone\Loggers\Interfaces\LoggerAwareInterface{
    use Barebone\Loggers\Traits\LoggerAwareTrait;
    function __construct(){
        $this->setLogger( new Barebone\Loggers\FileLogger(TEMP_PATH.'log.txt') );
        $this->getLogger()->alert('This is serious!!');
    }
}
debug(new TestTrait);