Page History
...
Request Logs - Once upon a time the Request logs were nothing but raw text dumps of the Request argument that the OECGI passed into HTTP_MCP. We are now proud to showcase our new and improved Request log format:
Code Block language text theme Confluence languagetext title Request Log collapse true Request Argument -------------------------------------------------------------------------------- <01> HTTPQueryString : <02> HTTPPathInfo : contacts <03> HTTPContentType : <04> HTTPContentLength : 0 <05> HTTPGatewayInterface : CGI/1.1 <06> HTTPHTTPS : off <07> HTTPAccept : */* <08> HTTPCookie : <09> HTTPFrom : <10> HTTPReferer : <11> HTTPUserAgent : PostmanRuntime/6.1.6 <12> HTTPTranslated : C:\MyWebsite\www\contacts <13> HTTPRemoteAddr : 127.0.0.1 <14> HTTPRemoteHost : <15> HTTPRemoteIdent : <16> HTTPRemoteUser : <17> HTTPRequestMethod : GET <18> HTTPScriptName : /cgi-bin/oecgi4.exe <19> HTTPServerName : www.contacts.com <20> HTTPServerPort : 80 <21> HTTPServerProtocol : HTTP/1.1 <22> HTTPServerSoftware : Abyss/2.9.3.6-X1-Win32 AbyssLib/2.9.3.6 <23> HTTPServerURL : <24> HTTPNoURLDecode : <25> HTTPResponseIsBinary : <26> HTTPRegistrySettings + RegistryInfo : SOFTWARE\RevSoft\OECGI4 EngineName : ServerURL : localhost ServerPort : 8088 ApplicationName : FRAMEWORKS UserName : FRAMEWORKS StartupFlags : 1 ShutdownFlags : 1 FilePath : FilePathMapped : FileMode : 1 SysDownPage : OILocation : AdditionalValues : HTTP_MEDIA_TYPE,HTTP_ACCEPT_ENCODING,HTTP_ACCEPT_CHARSET,HTTP_ACCEPT_LANGUAGE,HTTP_AUTHORIZATION <27> HTTPOECGIVersion : VERSION:OECGI4 <28> HTTPGetString : <29> HTTPPostString : <30> HTTPAdditionalValues + Media-Type : Accept-Encoding : gzip, deflate Accept-Charset : Accept-Language : Authorization :
Response Logs - Turns out more metadata is a good thing so we went ahead and updated the Response log with the current HTTP Framework version, Authorization information, and Query Params used:
Code Block language text theme Confluence language text title Response Log collapse true HTTP Framework : v3.0.1 - 07/11/2017 12:58PM Time to Execute: 00h 00m 00s 063ms Request Method : GET Request URL : http://www.contacts.com/api/contacts Authorization : None Query Params : company=benton -------------------------------------------------------------------------------- Status: 200 OK Access-Control-Allow-Origin: * Content-Type: application/hal+json Content-Length: 507 { "_embedded" : { "item" : [ { "_links" : { "self" : { "href" : "http://www.contacts.com/api/contacts/1" } }, "company" : "Benton, John B Jr", "email" : "jbutt@gmail.com", "first_name" : "James", "last_name" : "Butt" } ] }, "_links" : { "self" : { "href" : "http://www.contacts.com/api/contacts" } } }
Aborted Logs - We added a new log type for aborted web services to make it easy to identify the offending code:
Code Block language text theme Confluence languagetext title Aborted Log collapse true ProcErr Argument -------------------------------------------------------------------------------- ENG0010: HTTP_CONTACTS_SERVICES, line 315. Variable has not been assigned a value.
Debugger Logs - For those who want to utilize a Debugger Intercept option for more indepth troubleshooting in their web applications, we also provide a JSON formatted log file for the basic intercept content:
Code Block language js theme Confluence language js title Debugger Log collapse true { "CallDepth" : 5, "CallStack" : [ { "LineNo" : 315, "ProcName" : "HTTP_CONTACTS_SERVICES" }, { "LineNo" : 155, "ProcName" : "HTTP_SERVICES" }, { "LineNo" : 81, "ProcName" : "HTTP_ENTRY_POINT_SERVICES" }, { "LineNo" : 155, "ProcName" : "HTTP_SERVICES" }, { "LineNo" : 135, "ProcName" : "HTTP_MCP" } ], "Curr_Program" : "HTTP_CONTACTS_SERVICES", "LineNo" : 315, "SPStatCode" : "ENG0010: HTTP_CONTACTS_SERVICES, line 315. Variable has not been assigned a value.", "SPStatus" : 1 }
...
The logging feature of HTTP_MCP has been updated to provide more useful information in the response log. In addition to the basic response information (e.g., status code, response headers, and the body), metadata for the URL request itself is added so that it is easier to match the request to the response. Additionally, the time to execute the request from start to finish is also included as a way of helping developers identify potential bottlenecks. Here is an example of an updated response log:
Code Block | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
Time to Execute: 00h 00m 00s 875ms Request Method : POST Request URL : https://api.srpcs.com/srpteam/users/don -------------------------------------------------------------------------------- Status: 201 Created Access-Control-Allow-Origin: * Content-Type: application/hal+json Content-Length: 129 { "URL" : "https://api.srpcs.com/srpteam/users/don", "method" : "POST", "phrase" : "Created", "status" : 201 } |
...