mirror of
https://github.com/osm-search/Nominatim.git
synced 2026-02-26 11:08:13 +00:00
clean up query logging
- remove query_log table, keeping only new_query_log - drop unused import_npi_log table - disable DB logging per default - use file logging structure from osm.org
This commit is contained in:
82
lib/log.php
82
lib/log.php
@@ -2,68 +2,59 @@
|
|||||||
|
|
||||||
function logStart(&$oDB, $sType = '', $sQuery = '', $aLanguageList = array())
|
function logStart(&$oDB, $sType = '', $sQuery = '', $aLanguageList = array())
|
||||||
{
|
{
|
||||||
$aStartTime = explode('.',microtime(true));
|
$fStartTime = microtime(true);
|
||||||
|
$aStartTime = explode('.', $fStartTime);
|
||||||
if (!isset($aStartTime[1])) $aStartTime[1] = '0';
|
if (!isset($aStartTime[1])) $aStartTime[1] = '0';
|
||||||
|
|
||||||
$sOutputFormat = '';
|
$sOutputFormat = '';
|
||||||
if (isset($_GET['format'])) $sOutputFormat = $_GET['format'];
|
if (isset($_GET['format'])) $sOutputFormat = $_GET['format'];
|
||||||
|
|
||||||
|
if ($sType == 'reverse')
|
||||||
|
{
|
||||||
|
$sOutQuery = (isset($_GET['lat'])?$_GET['lat']:'').'/';
|
||||||
|
if (isset($_GET['lon'])) $sOutQuery .= $_GET['lon'];
|
||||||
|
if (isset($_GET['zoom'])) $sOutQuery .= '/'.$_GET['zoom'];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
$sOutQuery = $sQuery;
|
||||||
|
|
||||||
$hLog = array(
|
$hLog = array(
|
||||||
date('Y-m-d H:i:s',$aStartTime[0]).'.'.$aStartTime[1],
|
date('Y-m-d H:i:s',$aStartTime[0]).'.'.$aStartTime[1],
|
||||||
$_SERVER["REMOTE_ADDR"],
|
$_SERVER["REMOTE_ADDR"],
|
||||||
$_SERVER['QUERY_STRING'],
|
$_SERVER['QUERY_STRING'],
|
||||||
$sQuery
|
$sOutQuery,
|
||||||
|
$sType,
|
||||||
|
$fStartTime
|
||||||
);
|
);
|
||||||
|
|
||||||
if (CONST_Log_DB)
|
if (CONST_Log_DB)
|
||||||
{
|
{
|
||||||
// Log
|
if (isset($_GET['email']))
|
||||||
if ($sType == 'search')
|
$sUserAgent = $_GET['email'];
|
||||||
{
|
elseif (isset($_SERVER['HTTP_REFERER']))
|
||||||
$oDB->query('insert into query_log values ('.getDBQuoted($hLog[0]).','.getDBQuoted($hLog[3]).','.getDBQuoted($hLog[1]).')');
|
$sUserAgent = $_SERVER['HTTP_REFERER'];
|
||||||
}
|
elseif (isset($_SERVER['HTTP_USER_AGENT']))
|
||||||
|
$sUserAgent = $_SERVER['HTTP_USER_AGENT'];
|
||||||
$sSQL = 'insert into new_query_log (type,starttime,query,ipaddress,useragent,language,format)';
|
else
|
||||||
|
$sUserAgent = '';
|
||||||
|
$sSQL = 'insert into new_query_log (type,starttime,query,ipaddress,useragent,language,format,searchterm)';
|
||||||
$sSQL .= ' values ('.getDBQuoted($sType).','.getDBQuoted($hLog[0]).','.getDBQuoted($hLog[2]);
|
$sSQL .= ' values ('.getDBQuoted($sType).','.getDBQuoted($hLog[0]).','.getDBQuoted($hLog[2]);
|
||||||
$sSQL .= ','.getDBQuoted($hLog[1]).','.getDBQuoted($_SERVER['HTTP_USER_AGENT']).','.getDBQuoted(join(',',$aLanguageList)).','.getDBQuoted($sOutputFormat).')';
|
$sSQL .= ','.getDBQuoted($hLog[1]).','.getDBQuoted($sUserAgent).','.getDBQuoted(join(',',$aLanguageList)).','.getDBQuoted($sOutputFormat).','.getDBQuoted($hLog[3]).')';
|
||||||
$oDB->query($sSQL);
|
$oDB->query($sSQL);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (CONST_Log_File && CONST_Log_File_ReverseLog != '')
|
|
||||||
{
|
|
||||||
if ($sType == 'reverse')
|
|
||||||
{
|
|
||||||
$aStartTime = explode('.',$hLog[0]);
|
|
||||||
file_put_contents(CONST_Log_File_ReverseLog,
|
|
||||||
$aStartTime[0].','.$aStartTime[1].','.
|
|
||||||
php_uname('n').','.
|
|
||||||
'"'.addslashes(isset($_SERVER['HTTP_REFERER'])?$_SERVER['HTTP_REFERER']:'').'",'.
|
|
||||||
'"'.addslashes($hLog[1]).'",'.
|
|
||||||
$_GET['lat'].','.
|
|
||||||
$_GET['lon'].','.
|
|
||||||
$_GET['zoom'].','.
|
|
||||||
'"'.addslashes($_SERVER['HTTP_USER_AGENT']).'",'.
|
|
||||||
'"'.addslashes($sOutputFormat).'"'."\n",
|
|
||||||
FILE_APPEND);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return $hLog;
|
return $hLog;
|
||||||
}
|
}
|
||||||
|
|
||||||
function logEnd(&$oDB, $hLog, $iNumResults)
|
function logEnd(&$oDB, $hLog, $iNumResults)
|
||||||
{
|
{
|
||||||
$aEndTime = explode('.',microtime(true));
|
$fEndTime = microtime(true);
|
||||||
if (!$aEndTime[1]) $aEndTime[1] = '0';
|
|
||||||
$sEndTime = date('Y-m-d H:i:s',$aEndTime[0]).'.'.$aEndTime[1];
|
|
||||||
|
|
||||||
if (CONST_Log_DB)
|
if (CONST_Log_DB)
|
||||||
{
|
{
|
||||||
$sSQL = 'update query_log set endtime = '.getDBQuoted($sEndTime).', results = '.$iNumResults;
|
$aEndTime = explode('.', $fEndTime);
|
||||||
$sSQL .= ' where starttime = '.getDBQuoted($hLog[0]);
|
if (!$aEndTime[1]) $aEndTime[1] = '0';
|
||||||
$sSQL .= ' and ipaddress = '.getDBQuoted($hLog[1]);
|
$sEndTime = date('Y-m-d H:i:s',$aEndTime[0]).'.'.$aEndTime[1];
|
||||||
$sSQL .= ' and query = '.getDBQuoted($hLog[3]);
|
|
||||||
$oDB->query($sSQL);
|
|
||||||
|
|
||||||
$sSQL = 'update new_query_log set endtime = '.getDBQuoted($sEndTime).', results = '.$iNumResults;
|
$sSQL = 'update new_query_log set endtime = '.getDBQuoted($sEndTime).', results = '.$iNumResults;
|
||||||
$sSQL .= ' where starttime = '.getDBQuoted($hLog[0]);
|
$sSQL .= ' where starttime = '.getDBQuoted($hLog[0]);
|
||||||
@@ -72,19 +63,12 @@
|
|||||||
$oDB->query($sSQL);
|
$oDB->query($sSQL);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (CONST_Log_File && CONST_Log_File_SearchLog != '')
|
if (CONST_Log_File)
|
||||||
{
|
{
|
||||||
$aStartTime = explode('.',$hLog[0]);
|
$aOutdata = sprintf("[%s] %.4f %d %s \"%s\"\n",
|
||||||
file_put_contents(CONST_Log_File_SearchLog,
|
$hLog[0], $fEndTime-$hLog[5], $iNumResults,
|
||||||
$aStartTime[0].','.$aStartTime[1].','.
|
$hLog[4], $hLog[2]);
|
||||||
php_uname('n').','.
|
file_put_contents(CONST_Log_File, $aOutdata, FILE_APPEND | LOCK_EX);
|
||||||
'"'.addslashes(isset($_SERVER['HTTP_REFERER'])?$_SERVER['HTTP_REFERER']:'').'",'.
|
|
||||||
'"'.addslashes($hLog[1]).'",'.
|
|
||||||
'"'.addslashes($hLog[3]).'",'.
|
|
||||||
'"'.addslashes($_SERVER['HTTP_USER_AGENT']).'",'.
|
|
||||||
'"'.addslashes((isset($_GET['format']))?$_GET['format']:'').'",'.
|
|
||||||
$iNumResults."\n",
|
|
||||||
FILE_APPEND);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -112,10 +112,10 @@
|
|||||||
@define('CONST_PolygonOutput_MaximumTypes', 1);
|
@define('CONST_PolygonOutput_MaximumTypes', 1);
|
||||||
|
|
||||||
// Log settings
|
// Log settings
|
||||||
@define('CONST_Log_DB', true);
|
// Set to true to log into new_query_log table.
|
||||||
|
// You should set up a cron job that regularly clears out this table.
|
||||||
|
@define('CONST_Log_DB', false);
|
||||||
|
// Set to a file name to enable logging to a file.
|
||||||
@define('CONST_Log_File', false);
|
@define('CONST_Log_File', false);
|
||||||
@define('CONST_Log_File_Format', 'TODO'); // Currently hard coded
|
|
||||||
@define('CONST_Log_File_SearchLog', '');
|
|
||||||
@define('CONST_Log_File_ReverseLog', '');
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -13,29 +13,6 @@ CREATE TABLE import_osmosis_log (
|
|||||||
event text
|
event text
|
||||||
);
|
);
|
||||||
|
|
||||||
drop table if exists import_npi_log;
|
|
||||||
CREATE TABLE import_npi_log (
|
|
||||||
npiid integer,
|
|
||||||
batchend timestamp,
|
|
||||||
batchsize integer,
|
|
||||||
starttime timestamp,
|
|
||||||
endtime timestamp,
|
|
||||||
event text
|
|
||||||
);
|
|
||||||
|
|
||||||
--drop table IF EXISTS query_log;
|
|
||||||
CREATE TABLE query_log (
|
|
||||||
starttime timestamp,
|
|
||||||
query text,
|
|
||||||
ipaddress text,
|
|
||||||
endtime timestamp,
|
|
||||||
results integer
|
|
||||||
);
|
|
||||||
CREATE INDEX idx_query_log ON query_log USING BTREE (starttime);
|
|
||||||
GRANT SELECT ON query_log TO "{www-user}" ;
|
|
||||||
GRANT INSERT ON query_log TO "{www-user}" ;
|
|
||||||
GRANT UPDATE ON query_log TO "{www-user}" ;
|
|
||||||
|
|
||||||
CREATE TABLE new_query_log (
|
CREATE TABLE new_query_log (
|
||||||
type text,
|
type text,
|
||||||
starttime timestamp,
|
starttime timestamp,
|
||||||
@@ -43,6 +20,7 @@ CREATE TABLE new_query_log (
|
|||||||
useragent text,
|
useragent text,
|
||||||
language text,
|
language text,
|
||||||
query text,
|
query text,
|
||||||
|
searchterm text,
|
||||||
endtime timestamp,
|
endtime timestamp,
|
||||||
results integer,
|
results integer,
|
||||||
format text,
|
format text,
|
||||||
@@ -56,9 +34,6 @@ GRANT SELECT ON new_query_log TO "{www-user}" ;
|
|||||||
GRANT SELECT ON TABLE country_name TO "{www-user}";
|
GRANT SELECT ON TABLE country_name TO "{www-user}";
|
||||||
GRANT SELECT ON TABLE gb_postcode TO "{www-user}";
|
GRANT SELECT ON TABLE gb_postcode TO "{www-user}";
|
||||||
|
|
||||||
create view vw_search_query_log as SELECT substr(query, 1, 50) AS query, starttime, endtime - starttime AS duration, substr(useragent, 1, 20) as
|
|
||||||
useragent, language, results, ipaddress FROM new_query_log WHERE type = 'search' ORDER BY starttime DESC;
|
|
||||||
|
|
||||||
drop table IF EXISTS word;
|
drop table IF EXISTS word;
|
||||||
CREATE TABLE word (
|
CREATE TABLE word (
|
||||||
word_id INTEGER,
|
word_id INTEGER,
|
||||||
|
|||||||
Reference in New Issue
Block a user