mirror of
https://github.com/rsyslog/loganalyzer.git
synced 2025-09-25 18:59:12 +02:00
Added support to filter by date string (Sample: timereported:=2012-01-01)
A new Datetype hasbeen added to support filtering by date
This commit is contained in:
parent
538df05501
commit
92fc2f47e8
@ -436,7 +436,7 @@ abstract class LogStream {
|
||||
if (
|
||||
array_key_exists($propertyname, $this->_filters) &&
|
||||
isset($propertyvalue) /* &&
|
||||
!(is_string($propertyvalue) && strlen($propertyvalue) <= 0) /* Negative because it only matters if the propvalure is a string*/
|
||||
!(is_string($propertyvalue) && strlen($propertyvalue) <= 0)*/ /* Negative because it only matters if the propvalure is a string*/
|
||||
)
|
||||
{
|
||||
|
||||
@ -603,7 +603,16 @@ abstract class LogStream {
|
||||
if ( $nLogTimeStamp > $nToTimeStamp )
|
||||
$bEval = false;
|
||||
}
|
||||
else if ( $myfilter[FILTER_DATEMODE] == DATEMODE_RANGE_DATE )
|
||||
{
|
||||
// Get filter timestamp!
|
||||
// echo $myfilter[FILTER_VALUE];
|
||||
$nDateTimeStamp = GetTimeStampFromTimeString($myfilter[FILTER_VALUE]);
|
||||
|
||||
// If not on logfile day, the Event is outside of our scope!
|
||||
if ( $nLogTimeStamp < $nDateTimeStamp || $nLogTimeStamp > ($nDateTimeStamp+86400) )
|
||||
$bEval = false;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
// TODO!
|
||||
@ -944,6 +953,11 @@ abstract class LogStream {
|
||||
$tmpFilterType = FILTER_TYPE_DATE;
|
||||
$tmpTimeMode = DATEMODE_LASTX;
|
||||
break;
|
||||
case "timereported":
|
||||
$tmpKeyName = SYSLOG_DATE;
|
||||
$tmpFilterType = FILTER_TYPE_DATE;
|
||||
$tmpTimeMode = DATEMODE_RANGE_DATE;
|
||||
break;
|
||||
case "processid":
|
||||
$tmpKeyName = SYSLOG_PROCESSID;
|
||||
$tmpFilterType = FILTER_TYPE_STRING;
|
||||
@ -1090,7 +1104,10 @@ abstract class LogStream {
|
||||
if ( isset($tmpTimeMode) )
|
||||
{
|
||||
$this->_filters[$tmpKeyName][$iNum][FILTER_DATEMODE] = $tmpTimeMode;
|
||||
$this->_filters[$tmpKeyName][$iNum][FILTER_MODE] = $this->SetFilterIncludeMode($tmpArray[FILTER_TMP_VALUE]); // remove FilterMode characters from value
|
||||
$this->_filters[$tmpKeyName][$iNum][FILTER_VALUE] = $tmpArray[FILTER_TMP_VALUE];
|
||||
//echo $this->_filters[$tmpKeyName][$iNum][FILTER_VALUE];
|
||||
//exit;
|
||||
}
|
||||
else if ( isset($tmpValues) )
|
||||
{
|
||||
|
@ -1517,6 +1517,13 @@ class LogStreamDB extends LogStream {
|
||||
$myeventtime = GetEventTime($myfilter[FILTER_VALUE]);
|
||||
$tmpfilters[$propertyname][FILTER_VALUE] .= $dbmapping[$szTableType]['DBMAPPINGS'][$propertyname] . " < '" . date("Y-m-d H:i:s", $myeventtime[EVTIME_TIMESTAMP]) . "'";
|
||||
}
|
||||
else if ( $myfilter[FILTER_DATEMODE] == DATEMODE_RANGE_DATE )
|
||||
{
|
||||
// Obtain Event struct for the time!
|
||||
$myeventtime = GetEventTime($myfilter[FILTER_VALUE]);
|
||||
$tmpfilters[$propertyname][FILTER_VALUE] .= $dbmapping[$szTableType]['DBMAPPINGS'][$propertyname] . " > '" . date("Y-m-d H:i:s", $myeventtime[EVTIME_TIMESTAMP]) . "' AND " .
|
||||
$dbmapping[$szTableType]['DBMAPPINGS'][$propertyname] . " < '" . date("Y-m-d H:i:s", ($myeventtime[EVTIME_TIMESTAMP]+86400) ) . "'";
|
||||
}
|
||||
|
||||
break;
|
||||
default:
|
||||
|
@ -1866,6 +1866,13 @@ class LogStreamPDO extends LogStream {
|
||||
$myeventtime = GetEventTime($myfilter[FILTER_VALUE]);
|
||||
$tmpfilters[$propertyname][FILTER_VALUE] .= $dbmapping[$szTableType]['DBMAPPINGS'][$propertyname] . " < '" . date("Y-m-d H:i:s", $myeventtime[EVTIME_TIMESTAMP]) . "'";
|
||||
}
|
||||
else if ( $myfilter[FILTER_DATEMODE] == DATEMODE_RANGE_DATE )
|
||||
{
|
||||
// Obtain Event struct for the time!
|
||||
$myeventtime = GetEventTime($myfilter[FILTER_VALUE]);
|
||||
$tmpfilters[$propertyname][FILTER_VALUE] .= $dbmapping[$szTableType]['DBMAPPINGS'][$propertyname] . " > '" . date("Y-m-d H:i:s", $myeventtime[EVTIME_TIMESTAMP]) . "' AND " .
|
||||
$dbmapping[$szTableType]['DBMAPPINGS'][$propertyname] . " < '" . date("Y-m-d H:i:s", ($myeventtime[EVTIME_TIMESTAMP]+86400) ) . "'";
|
||||
}
|
||||
|
||||
break;
|
||||
default:
|
||||
|
@ -47,9 +47,9 @@ if ( !defined('IN_PHPLOGCON') )
|
||||
define('DATEMODE_ALL', 1);
|
||||
define('DATEMODE_RANGE', 2);
|
||||
define('DATEMODE_LASTX', 3);
|
||||
|
||||
define('DATEMODE_RANGE_FROM', 4);
|
||||
define('DATEMODE_RANGE_TO', 5);
|
||||
define('DATEMODE_RANGE_DATE', 6);
|
||||
|
||||
define('DATE_LASTX_HOUR', 1);
|
||||
define('DATE_LASTX_12HOURS', 2);
|
||||
|
@ -194,8 +194,10 @@ function InitSource(&$mysource)
|
||||
// UNKNOWN, remove config entry!
|
||||
unset($content['Sources'][$iSourceID]);
|
||||
|
||||
// Output CRITICAL WARNING
|
||||
DieWithFriendlyErrorMsg( GetAndReplaceLangStr($content['LN_GEN_CRITERROR_UNKNOWNTYPE'], $mysource['SourceType']) );
|
||||
// Output Debug Warning only!
|
||||
OutputDebugMessage( GetAndReplaceLangStr($content['LN_GEN_CRITERROR_UNKNOWNTYPE'], $mysource['SourceType']), DEBUG_ERROR);
|
||||
// DieWithFriendlyErrorMsg( GetAndReplaceLangStr($content['LN_GEN_CRITERROR_UNKNOWNTYPE'], $mysource['SourceType']) );
|
||||
return ERROR;
|
||||
}
|
||||
|
||||
// Set generic configuration options
|
||||
|
@ -329,6 +329,12 @@ function GetTimeStampFromTimeString($szTimeString)
|
||||
// return new timestamp
|
||||
return mktime($out[4], $out[5], $out[6], $out[2], $out[3], $out[1]);
|
||||
}
|
||||
//Sample: 2008-04-01
|
||||
else if ( preg_match("/([0-9]{4,4})-([0-9]{1,2})-([0-9]{1,2})$/", $szTimeString, $out) )
|
||||
{
|
||||
// return new timestamp
|
||||
return mktime(0,0,0, $out[2], $out[3], $out[1]);
|
||||
}
|
||||
else
|
||||
{
|
||||
OutputDebugMessage("Unparseable Time in GetTimeStampFromTimeString - '" . $szTimeString . "'", DEBUG_WARN);
|
||||
|
Loading…
x
Reference in New Issue
Block a user