Beispiel #1
0
<?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;
 }