Improve API logging

Continuing the discussion from Error with GUID using API POST:

It would be great to enhance the API logging so it would be clear exactly which modeled endpoint caused a crash. That would improve debugging a lot. Example:

2025-11-07 11:18:23 2025-11-07 11:18:23,263 [33] 
  ERROR Origam.Server.Pages.UserApiProcessor - 
  Error occured (System.Exception) for request:
2025-11-07 11:18:23 localhost//api/public/tasks/:
2025-11-07 12:26:33 Error occurred while processing API page 
  Name: /api/private/tasks/{taskId} 
  Url: /api/private/tasks/{taskId}
  Exception: Error occured when setting parameter: @Task_parId to value:
2025-11-07 12:26:33  —> System.FormatException: Unrecognized Guid format.

The already provided localhost//api/public/tasks/ together with the resolved endpoint will Especially the PostedUrl, which would log how the URL looked like, would make it clear that the user (in this case) either added / mistakingly or forgot to provide the guid.

I suggest adding an information on method as well.

But it isn’t that different from what is already delivered in the log. The undefined stands for an Id not being filled.

2025-11-11 06:53:29,298 [79] ERROR Origam.Server.Pages.UserApiProcessor - Error occured (System.Exception) for request: 
                    xxx//api/public/RentalObject/undefined/attachment: Error occured when setting parameter: @RentalObjectAttachment_parId to value: undefined
System.Exception: Error occured when setting parameter: @RentalObjectAttachment_parId to value: undefined
 ---> System.FormatException: Unrecognized Guid format.
   at System.Guid.GuidResult.SetFailure(ParseFailure failureKind)
   at System.Guid.TryParseGuid(ReadOnlySpan`1 guidString, GuidResult& result)
  

Yes, but we do not know exactly which API endpoint (model element) is complaining. In case of Viktor’s model there are two methods:

api/private/tasks
api/private/tasks/{taskId}

and the provided url was
/api/private/tasks/

So it is not immediately clear why is it complaining about @Task_parId because it sort of looked like api/private/tasks endpoint should have been selected. But because he added the last slash, it was actually evaluating the api/private/tasks/{taskId} route.

Therefore I suggested that the log also shows the evaluated model element. You are right that the original URL is already there, although in a strange format, I think : is missing, as it says localhost//api/public/tasks/.