You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
971 B
36 lines
971 B
<?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;
|
|
}
|
|
}
|