From 0f43ece73157dcd43d14f3d9f32f7840d55d8aa8 Mon Sep 17 00:00:00 2001 From: keitakn Date: Thu, 7 Jun 2018 15:39:48 +0900 Subject: [PATCH 1/2] resolve #19 From 50742573221f5c7d1624296d7908a2d3c96bc64a Mon Sep 17 00:00:00 2001 From: keitakn Date: Thu, 7 Jun 2018 15:58:30 +0900 Subject: [PATCH 2/2] add #19 outputHttpXForwardedFor --- tests/Logger/LoggerTest.php | 46 +++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/tests/Logger/LoggerTest.php b/tests/Logger/LoggerTest.php index 94fb909..d517c45 100644 --- a/tests/Logger/LoggerTest.php +++ b/tests/Logger/LoggerTest.php @@ -237,4 +237,50 @@ public function setLogLevel() $this->assertSame('PhpJsonLogger', $logger->getMonologInstance()->getName()); $this->assertSame(500, $logger->getLogLevel()); } + + /** + * @test + */ + public function outputHttpXForwardedFor() + { + $_SERVER['HTTP_X_FORWARDED_FOR'] = '10.0.0.0,10.1.1.1'; + $_SERVER['REMOTE_ADDR'] = '192.168.10.20'; + + $expectedRemoteIpAddress = '10.0.0.0'; + + $context = [ + 'name' => 'keitakn', + ]; + + $loggerBuilder = new LoggerBuilder(); + $logger = $loggerBuilder->build(); + $logger->info('testOutputHttpXForwardedFor', $context); + + unset($_SERVER['REMOTE_ADDR']); + unset($_SERVER['HTTP_X_FORWARDED_FOR']); + + $resultJson = file_get_contents($this->defaultOutputFileName); + $resultArray = json_decode($resultJson, true); + + echo "\n ---- Output Log Begin ---- \n"; + echo json_encode($resultArray, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT); + echo "\n ---- Output Log End ---- \n"; + + $expectedLog = [ + 'log_level' => 'INFO', + 'message' => 'testOutputHttpXForwardedFor', + 'trace_id' => $logger->getTraceId(), + 'file' => __FILE__, + 'line' => 257, + 'context' => $context, + 'remote_ip_address' => $expectedRemoteIpAddress, + 'user_agent' => 'unknown', + 'datetime' => $resultArray['datetime'], + 'timezone' => date_default_timezone_get(), + 'process_time' => $resultArray['process_time'], + ]; + + $this->assertSame('PhpJsonLogger', $logger->getMonologInstance()->getName()); + $this->assertSame($expectedLog, $resultArray); + } }