| 
<?php
 require_once '../vendor/autoload.php';
 
 use Ite\Logger\FileLogger;
 use Ite\Logger\LoggerAggregator;
 use Ite\Logger\PhpMailLogger;
 
 // create some simple loggers:
 $logger = new FileLogger(['error' => '../data/logs/errors.log', 'alert' => '../data/logs/errors.log']);
 $logger2 = new FileLogger();
 $logger3 = new FileLogger();
 $logger3->setDefaultLog('../data/logs/all.log');
 // Change the email addres to yours:
 $emailLogger = new PhpMailLogger('[email protected]');
 
 // create Logger Aggregator with a nested logger for 'error' and 'alert' level:
 $loggerAggregator = new LoggerAggregator(['error' => $logger, 'alert' => $logger]);
 // attach logger for 'info', 'debug' and 'error' levels:
 $loggerAggregator->attachLogger($logger2, ['info', 'debug', 'error']);
 // attach logger for all log levels:
 $loggerAggregator->attachLogger($logger3);
 // remove a logger for 'debug' level:
 $loggerAggregator->detachLogger($logger2, 'debug');
 // add email logger for critical messages:
 $loggerAggregator->attachLogger($emailLogger, 'critical');
 
 // fire some loggings:
 for ($i=0; $i<10; $i++) {
 $loggerAggregator->info("Test info {$i}",['a' => 'test context', 'qwe' => 'alabala']);
 }
 for ($i=0; $i<10; $i++) {
 $loggerAggregator->error("Test error {$i}", ['exception' => new Exception("Tesitng exceptions")]);
 }
 for ($i=0; $i<10; $i++) {
 $loggerAggregator->alert("Test alert {$i}", ['exception' => new Exception("Tesitng exceptions"),'a' => 'test context', 'qwe' => 'alabala']);
 }
 for ($i=0; $i<10; $i++) {
 $loggerAggregator->debug("Test debug {$i}");
 }
 // Fire criticial log message (this should send email):
 $loggerAggregator->critical("Critical message");
 |