outputFileBaseName = '/tmp/debug-log-test.log'; $this->outputFileName = '/tmp/debug-log-test-' . date('Y-m-d') . '.log'; if (file_exists($this->outputFileName)) { unlink($this->outputFileName); } } /** * @test */ public function outputDebugLog() { $context = [ 'title' => 'Test', ]; $loggerBuilder = new LoggerBuilder(); $loggerBuilder->setFileName($this->outputFileBaseName); $loggerBuilder->setLogLevel(LoggerBuilder::DEBUG); $logger = $loggerBuilder->build(); $logger->debug('🐶', $context); $resultJson = file_get_contents($this->outputFileName); $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' => 'DEBUG', 'message' => '🐶', 'channel' => 'PhpJsonLogger', 'trace_id' => $logger->getTraceId(), 'file' => __FILE__, 'line' => 52, 'context' => $context, 'remote_ip_address' => '127.0.0.1', 'server_ip_address' => '127.0.0.1', 'user_agent' => 'unknown', 'datetime' => $resultArray['datetime'], 'timezone' => date_default_timezone_get(), 'process_time' => $resultArray['process_time'], ]; $this->assertSame('PhpJsonLogger', $logger->getChannel()); $this->assertSame($expectedLog, $resultArray); } }