public function __construct() { $queryLogger = new \Monolog\Logger('Queries'); $fileHandler = new \Monolog\Handler\RotatingFileHandler(storage_path() . '/logs/query.log'); $lineFormatter = new \Monolog\Formatter\LineFormatter("%message% %context% %extra%\n", null, true, true); $fileHandler->setFormatter($lineFormatter); $queryLogger->pushHandler($fileHandler); if (php_sapi_name() !== 'cli') { $queryLogger->info("\n\n=======\n{$_SERVER['REQUEST_METHOD']}\n{$_SERVER['REQUEST_URI']}" . " \n" . Request::server('HTTP_REFERER') . "\n" . date('Y-m-d H:i:s') . "\n========="); } Event::listen('cache.missed', function ($key) use($queryLogger) { $queryLogger->info('cache.missed'); $queryLogger->info("\t" . $key); }); Event::listen('cache.hit', function ($key) use($queryLogger) { $queryLogger->info('cache.hit'); $queryLogger->info("\t" . $key); }); Event::listen('cache.write', function ($key) use($queryLogger) { $queryLogger->info('cache.write'); $queryLogger->info("\t" . $key); }); Event::listen('cache.delete', function ($key) use($queryLogger) { $queryLogger->info('cache.delete'); $queryLogger->info("\t" . $key); }); Event::listen("illuminate.query", function ($query, $bindings, $time) use($queryLogger) { $queryLogger->info("illuminate.query"); $queryLogger->info("\t" . $query, $bindings); $queryLogger->info("\t\t{$time} ms", $bindings); }); }
public function getLogger() { $settings = $this->ci->get('settings')['logger']; $handler = new \Monolog\Handler\RotatingFileHandler($settings['path']); $formatter = new \Monolog\Formatter\LineFormatter(); $formatter->ignoreEmptyContextAndExtra(); $handler->setFormatter($formatter); $logger = new \Monolog\Logger($settings['name']); $logger->pushHandler($handler); return $logger; }
/** * Bootstrap any application services. */ public function boot() { /** * Query logging */ if (Config::get('database.log_queries')) { $queryLogger = new \Monolog\Logger('Queries'); $fileHandler = new \Monolog\Handler\RotatingFileHandler(storage_path() . '/logs/query.log'); $lineFormatter = new \Monolog\Formatter\LineFormatter("%message% %context% %extra%\n", null, true, true); $fileHandler->setFormatter($lineFormatter); $queryLogger->pushHandler($fileHandler); if (php_sapi_name() !== 'cli') { $queryLogger->info("\n\n=======\n{$_SERVER['REQUEST_METHOD']}\n{$_SERVER['REQUEST_URI']}\n" . Request::server('HTTP_REFERER') . "\n" . date('Y-m-d H:i:s') . "\n========="); } Event::listen("illuminate.query", function ($query, $bindings, $time) use($queryLogger) { $queryLogger->info($query); $queryLogger->info("\t{$time} seconds", $bindings); }); } }
$app->singleton('Illuminate\\Contracts\\Debug\\ExceptionHandler', 'App\\Exceptions\\Handler'); /* |-------------------------------------------------------------------------- | Custom Monolog Configuration |-------------------------------------------------------------------------- | | See: http://laravel.com/docs/5.1/errors | https://github.com/Seldaek/monolog/blob/master/doc/01-usage.md | https://github.com/Seldaek/monolog/blob/master/doc/02-handlers-formatters-processors.md | http://laravel-tricks.com/tricks/monolog-for-custom-logging | https://laracasts.com/discuss/channels/general-discussion/advance-logging-with-laravel-and-monolog */ $app->configureMonologUsing(function ($monolog) { $handler = new Monolog\Handler\RotatingFileHandler(storage_path() . '/logs/laravel.log', 0, Monolog\Logger::DEBUG); //$handler->setFormatter(new Monolog\Formatter\LineFormatter( $handler->setFormatter(new App\LineNormalizer("[%datetime%] %extra.process_id% %channel%.%level_name% %extra.uName% %extra.class%::%extra.function%(%extra.line%): %message% %context%\n", null, true, true)); $handler->pushProcessor(new Monolog\Processor\ProcessIdProcessor()); $handler->pushProcessor(new Monolog\Processor\IntrospectionProcessor(Monolog\Logger::DEBUG, ["Illuminate\\Support\\Facades\\Log", "Illuminate\\Support\\Facades\\Facade", "Illuminate\\Log\\Writer"])); $monolog->pushHandler($handler); }); /* |-------------------------------------------------------------------------- | Return The Application |-------------------------------------------------------------------------- | | This script returns the application instance. The instance is given to | the calling script so we can separate the building of the instances | from the actual running of the application and sending responses. | */ return $app;
$app = new Illuminate\Foundation\Application(realpath(__DIR__ . '/../')); /* |-------------------------------------------------------------------------- | Bind Important Interfaces |-------------------------------------------------------------------------- | | Next, we need to bind some important interfaces into the container so | we will be able to resolve them when needed. The kernels serve the | incoming requests to this application from both the web and CLI. | */ $app->singleton(Illuminate\Contracts\Http\Kernel::class, CtrlV\Http\Kernel::class); $app->singleton(Illuminate\Contracts\Console\Kernel::class, CtrlV\Console\Kernel::class); $app->singleton(Illuminate\Contracts\Debug\ExceptionHandler::class, CtrlV\Exceptions\Handler::class); /* |-------------------------------------------------------------------------- | Return The Application |-------------------------------------------------------------------------- | | This script returns the application instance. The instance is given to | the calling script so we can separate the building of the instances | from the actual running of the application and sending responses. | */ $app->configureMonologUsing(function ($monolog) use($app) { $path = $app->storagePath() . '/logs/laravel.log'; $monolog->pushHandler($handler = new Monolog\Handler\RotatingFileHandler($path)); $handler->setFormatter($formatter = new Monolog\Formatter\LineFormatter(null, null, true, true)); $monolog->pushProcessor(new \Monolog\Processor\WebProcessor()); }); return $app;
/** * initialize the created the monolog instance */ public static function initialize() { // load the file config \Config::load('log', true); // make sure the log directories exist try { // determine the name and location of the logfile $path = \Config::get('log.log_path', APPPATH . 'logs' . DS); $filename = \Config::get('log.log_file', null); if (empty($filename)) { $filename = $path . LOG_FILENAME; } else { $filename = $path . $filename; } } catch (\Exception $e) { \Config::set('log.log_threshold', \Fuel::L_NONE); throw new \FuelException('Unable to create or write to the log file. Please check the permissions on ' . \Config::get('log_path') . '. (' . $e->getMessage() . ')'); } if (\Config::get("log.loggerconfig") !== null) { $handler = \Config::get("log.loggerconfig.handler"); foreach ($handler as $key => $value) { $level = \Monolog\Logger::DEBUG; switch ($value['level']) { case "DEBUG": $level = \Monolog\Logger::DEBUG; break; case "INFO": $level = \Monolog\Logger::INFO; break; case "NOTICE": $level = \Monolog\Logger::NOTICE; break; case "WARNING": $level = \Monolog\Logger::WARNING; break; case "ERROR": $level = \Monolog\Logger::ERROR; break; case "CRITICAL": $level = \Monolog\Logger::CRITICAL; break; case "ALERT": $level = \Monolog\Logger::ALERT; break; case "EMERGENCY": $level = \Monolog\Logger::EMERGENCY; break; } switch ($key) { case "Stream": $output = "%datetime% | %level_name% | %message%\n"; $formatter = new \Monolog\Formatter\LineFormatter($output . PHP_EOL, "Y-m-d H:i:s"); $stream = new \Monolog\Handler\StreamHandler($filename, $level); $stream->setFormatter($formatter); static::$monolog->pushHandler($stream); break; case "File": $output = "%datetime% | %level_name% | %message%\n"; $formatter = new \Monolog\Formatter\LineFormatter($output . PHP_EOL, "Y-m-d H:i:s"); $stream = new \Monolog\Handler\RotatingFileHandler($filename, $value['rotate'], $level); $stream->setFormatter($formatter); static::$monolog->pushHandler($stream); break; case "ChromePHP": static::$monolog->pushHandler(new \Monolog\Handler\FingersCrossedHandler(new \Monolog\Handler\ChromePHPHandler(), new \Monolog\Handler\FingersCrossed\ErrorLevelActivationStrategy($level))); break; } } } }
/** * @return Monolog */ private function getLogger() { $logger = new \Monolog\Logger('Commands'); $fileHandler = new \Monolog\Handler\RotatingFileHandler(storage_path() . '/logs/commands.log'); $streamHandler = new \Monolog\Handler\StreamHandler("php://output"); $lineFormatter = new \Monolog\Formatter\LineFormatter("[%datetime%] %message% %context% %extra%\n", null, true, true); $fileHandler->setFormatter($lineFormatter); $streamHandler->setFormatter($lineFormatter); $logger->pushHandler($fileHandler); $logger->pushHandler($streamHandler); return $logger; }
} closedir($handle); } */ session_start(); //подключаем локализацию //$lang = \ZippyERP\System\System::getLang(); //require_once _ZIPPY ."lang/{$lang}.php"; /* foreach ($modules as $module) { $file = $modulespath .$module ."/lang/{$lang}.php"; if(file_exists($file)){ require_once $file; } } */ // логгер $logger = new \Monolog\Logger("main"); $dateFormat = "Y n j, g:i a"; //$output = "%datetime% > %level_name% > %message% %context% %extra%\n"; $output = "%datetime% %level_name% : %message% \n"; $formatter = new \Monolog\Formatter\LineFormatter($output, $dateFormat); $h1 = new \Monolog\Handler\RotatingFileHandler(_ROOT . "logs/app.log", 10, $_config['common']['loglevel']); $h2 = new \Monolog\Handler\RotatingFileHandler(_ROOT . "logs/error.log", 10, 400); $h1->setFormatter($formatter); $h2->setFormatter($formatter); $logger->pushHandler($h1); $logger->pushHandler($h2); $logger->pushProcessor(new \Monolog\Processor\IntrospectionProcessor()); @mkdir(_ROOT . "logs");
<?php require __DIR__ . '/vendor/autoload.php'; function getUserIP() { $client = @$_SERVER['HTTP_CLIENT_IP']; $forward = @$_SERVER['HTTP_X_FORWARDED_FOR']; $remote = $_SERVER['REMOTE_ADDR']; if (filter_var($client, FILTER_VALIDATE_IP)) { $ip = $client; } elseif (filter_var($forward, FILTER_VALIDATE_IP)) { $ip = $forward; } else { $ip = $remote; } return $ip; } $dateFormat = "Y-m-d H:i:s"; $outputFormat = "%datetime% %level_name% %message% %context% %extra% (%channel%)\n"; $formatter = new Monolog\Formatter\LineFormatter($outputFormat, $dateFormat); $logHandler = new Monolog\Handler\RotatingFileHandler(__DIR__ . '\\logs\\notif.log', Monolog\Logger::DEBUG); $logHandler->setFormatter($formatter); $log = new Monolog\Logger('G'); $log->pushHandler($logHandler); $requestBodyStr = file_get_contents('php://input'); $info = array("REMOTE_ADDR" => @$_SERVER['REMOTE_ADDR'], "IP" => getUserIP(), "AUTH_USER" => @$_SERVER['PHP_AUTH_USER'], "AUTH_PW" => @$_SERVER['PHP_AUTH_PW'], "GET" => $_GET, "POST" => $_POST, "PostBody" => $requestBodyStr); $log->addInfo("Received:", $info); echo "<pre>"; print_r($info); echo "</pre>"; //phpinfo();