<?php $loader = (require __DIR__ . '/../vendor/autoload.php'); $loader->addPsr4('Pheat\\', __DIR__); $build = __DIR__ . '/../build'; $logger = new Monolog\Logger('test'); $handler = new Monolog\Handler\StreamHandler($build . '/test.log'); $handler->pushProcessor(new \Monolog\Processor\PsrLogMessageProcessor()); $logger->pushHandler($handler); $settings = new Pheat\Test\Settings(); $settings->setLogger($logger); $settings->fromEnvironment(); $settings->setBuildDir($build); $settings->checkBuildDir(); $settings->dumpConfig(); Pheat\Test\Test::setSettings($settings);
* */ require '../vendor/autoload.php'; date_default_timezone_set('Europe/Rome'); $config = (require '../config.php'); require '../app/function.fatal.php'; $streamToFile = new \Monolog\Handler\StreamHandler($config['log']['filename']); //@See https://github.com/Seldaek/monolog/blob/master/doc/01-usage.md // DEFAULT: "[%datetime%] %channel%.%level_name%: %message% %context% %extra%\n"; $output = "[%datetime%] [%level_name%] [%extra%] : %message% %context%\n"; $formatter = new Monolog\Formatter\LineFormatter($output); $streamToFile->setFormatter($formatter); $streamToFile->pushProcessor(function ($record) use($config) { if ($config['enviroment'] == 'development') { $record['extra']['connection'] = 'testing'; } else { $record['extra']['connection'] = 'default'; } return $record; }); $handlers[] = $streamToFile; $logger_writer = new \Flynsarmy\SlimMonolog\Log\MonologWriter(array('handlers' => $handlers, 'processors' => array(new Monolog\Processor\UidProcessor(), new Monolog\Processor\WebProcessor($_SERVER)))); $app = new \Slim\Slim(array('mode' => $config['enviroment'], 'log.level' => \Slim\Log::DEBUG, 'log.enabled' => true, 'log.writer' => $logger_writer, 'templates.path' => '../templates')); $app->config('databases', $config['databases']); $app->add(new \BitPrepared\Slim\Middleware\EloquentMiddleware()); $corsOptions = array("origin" => "*"); $app->add(new \CorsSlim\CorsSlim($corsOptions)); $app->hook('slim.before.router', function () use($app) { $req = $app->request; $allGetVars = $req->get(); $allPostVars = $req->post(); $allPutVars = $req->put();
protected function getMonolog_Handler_NestedService() { $this->services['monolog.handler.nested'] = $instance = new \Monolog\Handler\StreamHandler($this->targetDirs[2] . '/logs/prod.log', 100, true, NULL); $instance->pushProcessor(${($_ = isset($this->services['monolog.processor.psr_log_message']) ? $this->services['monolog.processor.psr_log_message'] : $this->getMonolog_Processor_PsrLogMessageService()) && false ?: '_'}); return $instance; }
/** * Saving Application instance for later use * * @param Container $container * @return void */ public function provideServices(Container $container) { $this->container = $container; /* * Creating and registering our error handler */ $whoops = new Run(); $whoops->register(); /** @var \Venta\Contracts\Kernel\Kernel $kernel */ $kernel = $container->get(Kernel::class); if ($kernel->isCli()) { // We don't need pretty pages in cli mode $whoops->allowQuit(true); $whoops->sendHttpCode(false); $whoops->writeToOutput(true); $whoops->pushHandler(new PlainTextHandler()); } else { // Push pretty page handler only for local environment $whoops->pushHandler($kernel->getEnvironment() === 'local' ? new PrettyPageHandler() : new PlainTextHandler()); } /** * Bind error handler */ $container->bindClass(RunInterface::class, $whoops, ['error_handler']); /* * Bind PSR-3 logger */ $container->share(\Monolog\Logger::class, function (Container $c) { $logger = new \Monolog\Logger('venta'); $handler = new \Monolog\Handler\StreamHandler(__DIR__ . '/../storage/logs/app.log'); $handler->pushProcessor(function ($record) use($c) { /** @var \Venta\Contracts\Kernel\Kernel $kernel */ $kernel = $c->get(Kernel::class); if ($kernel->isCli()) { // Add cli command related extra info /** @var \Symfony\Component\Console\Input\InputInterface $input */ $input = $c->get(InputInterface::class); $record['extra']['command'] = $input->getFirstArgument(); $record['extra']['arguments'] = $input->getArguments(); $record['extra']['options'] = $input->getOptions(); } else { // Add HTTP request related extra info /** @var \Psr\Http\Message\ServerRequestInterface $request */ $request = $c->get(ServerRequestInterface::class); $server = $request->getServerParams(); $record['extra']['url'] = $request->getUri()->getPath(); $record['extra']['http_method'] = $request->getMethod(); $record['extra']['host'] = $request->getUri()->getHost(); $record['extra']['referer'] = $request->getHeader('referer'); $record['extra']['user_agent'] = $request->getHeader('user-agent'); $record['extra']['ip'] = $server['REMOTE_ADDR'] ?? null; } return $record; }); $handler->setFormatter(new \Monolog\Formatter\LineFormatter()); $logger->pushHandler($handler); return $logger; }, ['logger', LoggerInterface::class]); }
/** * Gets the 'monolog.handler.main' service. * * This service is shared. * This method always returns the same instance of the service. * * @return \Monolog\Handler\StreamHandler A Monolog\Handler\StreamHandler instance */ protected function getMonolog_Handler_MainService() { $this->services['monolog.handler.main'] = $instance = new \Monolog\Handler\StreamHandler($this->targetDirs[2] . '/logs/test.log', 100, true, NULL); $instance->pushProcessor($this->get('monolog.processor.psr_log_message')); return $instance; }
<?php date_default_timezone_set('Europe/Rome'); require '../vendor/autoload.php'; $config = (require '../config.php'); require '../app/function.fatal.php'; $streamToFile = new \Monolog\Handler\StreamHandler($config['log']['filename']); //@See https://github.com/Seldaek/monolog/blob/master/doc/01-usage.md // DEFAULT: "[%datetime%] %channel%.%level_name%: %message% %context% %extra%\n"; $output = "[%datetime%] [%level_name%] [%extra%] : %message% %context%\n"; $formatter = new Monolog\Formatter\LineFormatter($output); $streamToFile->setFormatter($formatter); if ($config['enviroment'] == 'development') { $connection_name = 'testing'; } else { $connection_name = 'default'; } $streamToFile->pushProcessor(function ($record) use($connection_name, $argv) { $record['extra']['connection'] = $connection_name; $record['extra']['scriptname'] = $argv[0]; return $record; }); $log = new \Monolog\Logger('script'); $log->pushHandler($streamToFile);
/** * Gets the 'monolog.handler.vitacora.siig' service. * * This service is shared. * This method always returns the same instance of the service. * * @return \Monolog\Handler\StreamHandler A Monolog\Handler\StreamHandler instance. */ protected function getMonolog_Handler_Vitacora_SiigService() { $this->services['monolog.handler.vitacora.siig'] = $instance = new \Monolog\Handler\StreamHandler($this->targetDirs[2] . '/logs/minsal.log', 200); $instance->pushProcessor($this->get('monolog.processor.siig')); return $instance; }