From 413d04a02d666f42a3fa6b31139a81976b32162f Mon Sep 17 00:00:00 2001 From: netkas Date: Wed, 30 Oct 2024 15:28:13 -0400 Subject: [PATCH] Add logging for RPC request processing --- src/Socialbox/Socialbox.php | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/Socialbox/Socialbox.php b/src/Socialbox/Socialbox.php index c4da0d5..be5b683 100644 --- a/src/Socialbox/Socialbox.php +++ b/src/Socialbox/Socialbox.php @@ -3,7 +3,9 @@ namespace Socialbox; use Exception; + use LogLib\Log; use Socialbox\Classes\Configuration; + use Socialbox\Classes\Logger; use Socialbox\Classes\RpcHandler; use Socialbox\Classes\Utilities; use Socialbox\Enums\StandardError; @@ -21,11 +23,14 @@ } catch(RpcException $e) { + Logger::getLogger()->error('Failed to parse the client request', $e); http_response_code($e->getCode()); print($e->getMessage()); return; } + Logger::getLogger()->verbose(sprintf('Received %d RPC request(s) from %s', count($clientRequest->getRequests()), $_SERVER['REMOTE_ADDR'])); + $results = []; foreach($clientRequest->getRequests() as $rpcRequest) { @@ -33,20 +38,24 @@ if($method === false) { + Logger::getLogger()->warning('The requested method does not exist'); $response = $rpcRequest->produceError(StandardError::RPC_METHOD_NOT_FOUND, 'The requested method does not exist'); } else { try { + Logger::getLogger()->debug(sprintf('Processing RPC request for method %s', $rpcRequest->getMethod())); $response = $method->execute($clientRequest, $rpcRequest); } catch(StandardException $e) { + Logger::getLogger()->error('An error occurred while processing the RPC request', $e); $response = $e->produceError($rpcRequest); } catch(Exception $e) { + Logger::getLogger()->error('An internal error occurred while processing the RPC request', $e); if(Configuration::getConfiguration()['security']['display_internal_exceptions']) { $response = $rpcRequest->produceError(StandardError::INTERNAL_SERVER_ERROR, Utilities::throwableToString($e)); @@ -60,22 +69,26 @@ if($response !== null) { + Logger::getLogger()->debug(sprintf('Producing response for method %s', $rpcRequest->getMethod())); $results[] = $response->toArray(); } } if(count($results) == 0) { + Logger::getLogger()->verbose('No results to return'); http_response_code(204); return; } if(count($results) == 1) { + Logger::getLogger()->verbose('Returning single result'); print(json_encode($results[0])); return; } + Logger::getLogger()->verbose('Returning multiple results'); print(json_encode($results)); } } \ No newline at end of file