Logger.php
Go to the documentation of this file.
00001 <?php 00002 00005 00017 /* 00018 drop table SD.WSF.ws_queries_log; 00019 create table "SD"."WSF"."ws_queries_log" 00020 ( 00021 "id" INTEGER IDENTITY, 00022 "requested_web_service" VARCHAR, 00023 "requester_ip" VARCHAR, 00024 "request_parameters" VARCHAR, 00025 "requested_mime" VARCHAR, 00026 "request_datetime" DATETIME, 00027 "request_processing_time" DECIMAL, 00028 "request_http_response_status" VARCHAR, 00029 "requester_user_agent" VARCHAR, 00030 PRIMARY KEY ("id") 00031 ); 00032 create index sd_wsf_requested_web_service_index on SD.WSF.ws_queries_log (requested_web_service); 00033 create index sd_wsf_requester_ip_index on SD.WSF.ws_queries_log (requester_ip); 00034 create index sd_wsf_requested_mime_index on SD.WSF.ws_queries_log (requested_mime); 00035 create index sd_wsf_request_datetime_index on SD.WSF.ws_queries_log (request_datetime); 00036 create index sd_wsf_request_http_response_status_index on SD.WSF.ws_queries_log (request_http_response_status); 00037 create index sd_wsf_requester_user_agent_index on SD.WSF.ws_queries_log (requester_user_agent); 00038 */ 00039 00040 /* 00041 Some interesting SQL queries to send against that log table: 00042 00043 -- Get the number of queries sent to the WSF: 00044 select count(*) as nb from SD.WSF.ws_queries_log; 00045 00046 -- Get the last 10 queries sent to the WSF: 00047 select top 10 * from SD.WSF.ws_queries_log order by ID desc; 00048 00049 -- Get the average number of milliseconds per query sent to the syste 00050 select avg(request_processing_time) as average_query_time from SD.WSF.ws_queries_log order by ID desc; 00051 00052 -- Get the average query time for a specific web service endpoint 00053 select avg(request_processing_time) as average_query_time from SD.WSF.ws_queries_log where requested_web_service = 'browse' order by ID desc; 00054 00055 */ 00056 00066 class Logger 00067 { 00068 protected $db; 00069 00070 function __construct($requestedWebService, $requesterIp, $requestParameters, $requestedMime, $requestTime, 00071 $requestProcessingTime, $requestHttpResponseStatus, $requesterUserAgent = "") 00072 { 00073 include_once("WebService.php"); 00074 00075 $data_ini = parse_ini_file(WebService::$data_ini . "data.ini", TRUE); 00076 00077 $this->db = new DB_Virtuoso($data_ini["triplestore"]["username"], $data_ini["triplestore"]["password"], 00078 $data_ini["triplestore"]["dsn"], $data_ini["triplestore"]["host"]); 00079 00080 $this->db->query( 00081 "insert into ".$data_ini["triplestore"]["log_table"]."(requested_web_service, requester_ip, request_parameters, requested_mime, request_datetime, request_processing_time, request_http_response_status, requester_user_agent) values('" 00082 . str_replace("'", "\'", $requestedWebService) . "', '" . str_replace("'", "\'", $requesterIp) . "', '" 00083 . str_replace("'", "\'", $requestParameters) . "', '" . str_replace("'", "\'", $requestedMime) . "', '" 00084 . str_replace("'", "\'", $requestTime) . "', '" . str_replace("'", "\'", $requestProcessingTime) . "', '" 00085 . str_replace("'", "\'", $requestHttpResponseStatus) . "', '" . str_replace("'", "\'", $requesterUserAgent) 00086 . "')"); 00087 00088 $this->__destruct(); 00089 } 00090 00091 function __destruct() { } 00092 } 00093 00095 00096 ?>
