|
|
|
@ -0,0 +1,36 @@ |
|
|
|
<?php |
|
|
|
|
|
|
|
namespace Common; |
|
|
|
|
|
|
|
use Psr\Log\LoggerInterface; |
|
|
|
|
|
|
|
use Monolog\Logger; |
|
|
|
use Monolog\Handler\NoopHandler; |
|
|
|
use Monolog\Handler\StreamHandler; |
|
|
|
use Monolog\Formatter\LineFormatter; |
|
|
|
use Mangoweb\MonologTracyHandler\TracyHandler; |
|
|
|
use Mangoweb\MonologTracyHandler\TracyProcessor; |
|
|
|
|
|
|
|
class LoggerFactory |
|
|
|
{ |
|
|
|
public static function create(string $log_directory) : LoggerInterface |
|
|
|
{ |
|
|
|
$file_handler = new StreamHandler($log_directory . "/main.log", 'debug'); |
|
|
|
$file_handler->setFormatter(new LineFormatter(null, null , false, true)); |
|
|
|
|
|
|
|
$logger = new Logger('default'); |
|
|
|
$logger->pushProcessor(new TracyProcessor); |
|
|
|
$logger->pushHandler(new TracyHandler($log_directory)); |
|
|
|
$logger->pushHandler($file_handler); |
|
|
|
return $logger; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static function createForTests() : LoggerInterface |
|
|
|
{ |
|
|
|
$logger = new Logger('default'); |
|
|
|
$logger->pushHandler(new NoopHandler()); |
|
|
|
return $logger; |
|
|
|
} |
|
|
|
} |