public static function configureFileLogs(Monolog $monolog, $filePath) { $files = new RotatingFileHandler($filePath, 365, Logger::DEBUG, true, 0666); $files->setFormatter(new HtmlFormatter()); $files->pushProcessor(new WebProcessor()); $files->pushProcessor(new IntrospectionProcessor(Logger::DEBUG)); $monolog->pushHandler($files); }
use Monolog\Processor\MemoryUsageProcessor; use Symfony\Component\ClassLoader\Psr4ClassLoader; // this makes our life easier when dealing with paths. Everything is relative to the application root now. chdir(dirname(__DIR__)); // initialize autoloading require __DIR__ . '/../vendor/autoload.php'; $loader = new Psr4ClassLoader(); $loader->addPrefix('Pids\\', 'src' . DIRECTORY_SEPARATOR . 'Pids'); $loader->register(); // load config $aConfig = (include_once 'config' . DIRECTORY_SEPARATOR . 'config.php'); // create logger $oLogger = new Logger('pids'); if ($aConfig['logging']['enable']) { $oHandler = new RotatingFileHandler('log' . DIRECTORY_SEPARATOR . 'access.log', 7, $aConfig['logging']['level']); $oHandler->pushProcessor(new WebProcessor()); if ($aConfig['logging']['level'] == Logger::DEBUG) { $oHandler->pushProcessor(new MemoryUsageProcessor()); } $oLogger->pushHandler($oHandler); } // create controller and process request $oController = new Controller($aConfig, $oLogger); try { $sImage = $oController->process($_REQUEST["filter"], $_REQUEST["options"], $_REQUEST["file"]); header("Expires: " . gmdate("D, d M Y H:i:s", time() + 3600) . " GMT"); header("Cache-Control: max-age=3600, must-revalidate"); header("Content-Type: image/jpeg"); readfile($sImage); exit; } catch (Exception $e) {