Browse Source

Initial commit

master
Jan Pavlíček 2 years ago
commit
479401af72
  1. 0
      README
  2. 13
      composer.json
  3. 36
      lib/Common/LoggerFactory.php

0
README

13
composer.json

@ -0,0 +1,13 @@
{
"name": "pavlicek.dev/webapp-common-utils",
"description": "Collection of tools, utils and code chunks useful when creating web applications",
"autoload": {
"psr-0": {"": "lib/"}
},
"require": {
"php": ">= 8.2.0",
"psr/log": "*",
"monolog/monolog": "^2.9",
"mangoweb/monolog-tracy-handler": "^1.0"
}
}

36
lib/Common/LoggerFactory.php

@ -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;
}
}
Loading…
Cancel
Save