- another milestone, fully implemented dynamic columns. This means columns can be dynamically chosen in the config.php file, and the view will be dynamically built based on the chosen columns. Multiple predefined views will be possible later.

This commit is contained in:
Andre Lorbach 2008-04-15 17:49:48 +02:00
parent 0f0e88a40f
commit 10e2ce19b3
10 changed files with 321 additions and 135 deletions

View File

@ -185,6 +185,9 @@ class LogStreamDisk extends LogStream {
// Line Parser Hook here
$this->_logStreamConfigObj->_lineParser->ParseLine($arrProperitesOut[SYSLOG_MESSAGE], $arrProperitesOut);
// Set uID to the PropertiesOut!
$arrProperitesOut[SYSLOG_UID] = $uID;
// Loop until the filter applies, or another error occurs.
} while ( $this->ApplyFilters($ret, $arrProperitesOut) != SUCCESS && $ret == SUCCESS );

View File

@ -48,19 +48,29 @@ $CFG['UserDBPass'] = "";
// ---
// --- Misc Options
$CFG['MiscShowDebugMsg'] = 1;
$CFG["MiscShowPageRenderStats"] = 1; // If enabled, you will see Pagerender Settings
$CFG['MiscShowDebugMsg'] = 0; // if enabled, you will get additional output on certain places
$CFG["MiscShowPageRenderStats"] = 1; // If enabled, you will see Pagerender Settings
// ---
// --- Default Frontend Options
$CFG['ViewUseTodayYesterday'] = 1; // If enabled, the date from today and yesterday is displayed as "today" and "yesterday"
$CFG['ViewMessageCharacterLimit'] = 100; // Default character limit for the message gets trunscated.
$CFG['ViewMessageCharacterLimit'] = 80; // Default character limit for the message gets trunscated.
$CFG['ViewEntriesPerPage'] = 50; // Default number of syslog entries shown per page
$CFG['ViewEnableDetailPopups'] = 1; // If enabled, you will see additional Details for each syslog message on mouse over.
$CFG['SearchCustomButtonCaption'] = "I'd like to feel sad"; // Default caption for the custom fast search button
$CFG['SearchCustomButtonSearch'] = "error"; // Default search string for the custom search button
// ---
// --- Define which fields you want to see
//$CFG['ShowMessage'] = true; // If enabled, the Message column will be appended to the columns list.
$CFG['Columns'][] = SYSLOG_DATE;
$CFG['Columns'][] = SYSLOG_FACILITY;
$CFG['Columns'][] = SYSLOG_SEVERITY;
$CFG['Columns'][] = SYSLOG_HOST;
$CFG['Columns'][] = SYSLOG_SYSLOGTAG;
$CFG['Columns'][] = SYSLOG_MESSAGETYPE;
$CFG['Columns'][] = SYSLOG_MESSAGE;
// ---
// --- Source Options

View File

@ -22,7 +22,7 @@
display: none;
}
.syslogdetails, a.syslogdetails, a.syslogdetails:link
.syslogdetails, a.syslogdetails, a.syslogdetails:link, a.syslogdetails:active, a.syslogdetails:visited
{
font-weight:normal;
text-decoration:none;

View File

@ -49,10 +49,4 @@ define('FILTER_MODE', 'filtermode');
define('FILTER_MODE_INCLUDE', 0);
define('FILTER_MODE_EXCLUDE', 1);
// Defines which kind of filters we have
define('FILTER_TYPE_STRING', 0);
define('FILTER_TYPE_NUMBER', 1);
define('FILTER_TYPE_DATE', 2);
?>

View File

@ -24,7 +24,8 @@ if ( !defined('IN_PHPLOGCON') )
// --- Some custom defines
// Properties we need from the stream class
// Define properties names of all know fields
define('SYSLOG_UID', 'uID');
define('SYSLOG_DATE', 'timereported');
define('SYSLOG_DATE_FORMATED', 'timereported_formatted');
define('SYSLOG_FACILITY', 'syslogfacility');
@ -38,6 +39,69 @@ define('SYSLOG_MESSAGETRUNSCATED', 'msgtrunscated');
define('SYSLOG_MESSAGETYPE', 'IUT');
define('SYSLOG_PROCESSID', 'procid');
// Defines which kind of field types we have
define('FILTER_TYPE_STRING', 0);
define('FILTER_TYPE_NUMBER', 1);
define('FILTER_TYPE_DATE', 2);
// Predefine fields array!
$fields[SYSLOG_UID]['FieldID'] = SYSLOG_UID;
$fields[SYSLOG_UID]['FieldCaptionID'] = 'LN_FIELDS_UID';
$fields[SYSLOG_UID]['FieldType'] = FILTER_TYPE_NUMBER;
$fields[SYSLOG_UID]['Sortable'] = false;
$fields[SYSLOG_UID]['DefaultWidth'] = "50";
$fields[SYSLOG_UID]['FieldAlign'] = "center";
$fields[SYSLOG_DATE]['FieldID'] = SYSLOG_DATE;
$fields[SYSLOG_DATE]['FieldCaptionID'] = 'LN_FIELDS_DATE';
$fields[SYSLOG_DATE]['FieldType'] = FILTER_TYPE_DATE;
$fields[SYSLOG_DATE]['Sortable'] = true;
$fields[SYSLOG_DATE]['DefaultWidth'] = "110";
$fields[SYSLOG_DATE]['FieldAlign'] = "center";
$fields[SYSLOG_FACILITY]['FieldID'] = SYSLOG_FACILITY;
$fields[SYSLOG_FACILITY]['FieldCaptionID'] = 'LN_FIELDS_FACILITY';
$fields[SYSLOG_FACILITY]['FieldType'] = FILTER_TYPE_NUMBER;
$fields[SYSLOG_FACILITY]['Sortable'] = true;
$fields[SYSLOG_FACILITY]['DefaultWidth'] = "50";
$fields[SYSLOG_FACILITY]['FieldAlign'] = "center";
$fields[SYSLOG_SEVERITY]['FieldID'] = SYSLOG_SEVERITY;
$fields[SYSLOG_SEVERITY]['FieldCaptionID'] = 'LN_FIELDS_SEVERITY';
$fields[SYSLOG_SEVERITY]['FieldType'] = FILTER_TYPE_NUMBER;
$fields[SYSLOG_SEVERITY]['Sortable'] = true;
$fields[SYSLOG_SEVERITY]['DefaultWidth'] = "50";
$fields[SYSLOG_SEVERITY]['FieldAlign'] = "center";
$fields[SYSLOG_HOST]['FieldID'] = SYSLOG_HOST;
$fields[SYSLOG_HOST]['FieldCaptionID'] = 'LN_FIELDS_HOST';
$fields[SYSLOG_HOST]['FieldType'] = FILTER_TYPE_STRING;
$fields[SYSLOG_HOST]['Sortable'] = true;
$fields[SYSLOG_HOST]['DefaultWidth'] = "65";
$fields[SYSLOG_HOST]['FieldAlign'] = "center";
$fields[SYSLOG_SYSLOGTAG]['FieldID'] = SYSLOG_SYSLOGTAG;
$fields[SYSLOG_SYSLOGTAG]['FieldCaptionID'] = 'LN_FIELDS_SYSLOGTAG';
$fields[SYSLOG_SYSLOGTAG]['FieldType'] = FILTER_TYPE_STRING;
$fields[SYSLOG_SYSLOGTAG]['Sortable'] = true;
$fields[SYSLOG_SYSLOGTAG]['DefaultWidth'] = "70";
$fields[SYSLOG_SYSLOGTAG]['FieldAlign'] = "center";
$fields[SYSLOG_MESSAGETYPE]['FieldID'] = SYSLOG_MESSAGETYPE;
$fields[SYSLOG_MESSAGETYPE]['FieldCaptionID'] = 'LN_FIELDS_MESSAGETYPE';
$fields[SYSLOG_MESSAGETYPE]['FieldType'] = FILTER_TYPE_NUMBER;
$fields[SYSLOG_MESSAGETYPE]['Sortable'] = true;
$fields[SYSLOG_MESSAGETYPE]['DefaultWidth'] = "90";
$fields[SYSLOG_MESSAGETYPE]['FieldAlign'] = "center";
$fields[SYSLOG_PROCESSID]['FieldID'] = SYSLOG_PROCESSID;
$fields[SYSLOG_PROCESSID]['FieldCaptionID'] = 'LN_FIELDS_PROCESSID';
$fields[SYSLOG_PROCESSID]['FieldType'] = FILTER_TYPE_NUMBER;
$fields[SYSLOG_PROCESSID]['Sortable'] = true;
$fields[SYSLOG_PROCESSID]['DefaultWidth'] = "65";
$fields[SYSLOG_PROCESSID]['FieldAlign'] = "center";
$fields[SYSLOG_MESSAGE]['FieldID'] = SYSLOG_MESSAGE;
$fields[SYSLOG_MESSAGE]['FieldCaptionID'] = 'LN_FIELDS_MESSAGE';
$fields[SYSLOG_MESSAGE]['FieldType'] = FILTER_TYPE_STRING;
$fields[SYSLOG_MESSAGE]['Sortable'] = false;
$fields[SYSLOG_MESSAGE]['DefaultWidth'] = "100%";
$fields[SYSLOG_MESSAGE]['FieldAlign'] = "left";
// MonitorWare InfoUnit Defines
define('IUT_Unknown', '0');
define('IUT_Syslog', '1');

View File

@ -24,6 +24,7 @@ if ( !defined('IN_PHPLOGCON') )
// --- Basic Includes
include($gl_root_path . 'include/constants_general.php');
include($gl_root_path . 'include/constants_logstream.php');
include($gl_root_path . 'config.php');
include($gl_root_path . 'classes/class_template.php');
@ -45,7 +46,7 @@ $LANG_EN = "en"; // Used for fallback
$LANG = "en"; // Default language
// Default Template vars
$content['BUILDNUMBER'] = "2.0.105";
$content['BUILDNUMBER'] = "2.0.107";
$content['TITLE'] = "PhpLogCon - Release " . $content['BUILDNUMBER']; // Title of the Page
$content['BASEPATH'] = $gl_root_path;
$content['EXTRA_METATAGS'] = "";
@ -84,7 +85,11 @@ function InitPhpLogConConfigFile()
// Easier DB Access
define('DB_CONFIG', $CFG['UserDBPref'] . "config");
// Copy all entries into content variable
// If DEBUG Mode is enabled, we prepend the UID field into the col list!
if ( $CFG['MiscShowDebugMsg'] == 1 )
array_unshift($CFG['Columns'], SYSLOG_UID);
// Now Copy all entries into content variable
foreach ($CFG as $key => $value )
$content[$key] = $value;

View File

@ -66,11 +66,14 @@ function CreateCurrentUrl()
if ( strpos($queries[$i], "sourceid") === false )
{
$tmpvars = explode ("=", $queries[$i]);
// 4Server Selector
$content['HIDDENVARS'][$counter]['varname'] = $tmpvars[0];
$content['HIDDENVARS'][$counter]['varvalue'] = $tmpvars[1];
if ( isset($tmpvars[1]) ) // Only if value param is set!
{
// 4Server Selector
$content['HIDDENVARS'][$counter]['varname'] = $tmpvars[0];
$content['HIDDENVARS'][$counter]['varvalue'] = $tmpvars[1];
$counter++;
$counter++;
}
}
}
}

View File

@ -34,25 +34,25 @@
// *** Default includes and procedures *** //
define('IN_PHPLOGCON', true);
$gl_root_path = './';
// Now include necessary include files!
include($gl_root_path . 'include/functions_common.php');
include($gl_root_path . 'include/functions_frontendhelpers.php');
include($gl_root_path . 'include/functions_filters.php');
// Init Langauge first!
IncludeLanguageFile( $gl_root_path . '/lang/' . $LANG . '/main.php' );
// Include LogStream facility
include($gl_root_path . 'classes/logstream.class.php');
InitPhpLogCon();
InitSourceConfigs();
InitFrontEndDefaults(); // Only in WebFrontEnd
InitFilterHelpers(); // Helpers for frontend filtering!
// ---
// Init Langauge first!
IncludeLanguageFile( $gl_root_path . '/lang/' . $LANG . '/main.php' );
// Helpers for frontend filtering!
InitFilterHelpers();
// *** *** //
// --- Extra Stylesheet!
// --- Define Extra Stylesheet!
$content['EXTRA_STYLESHEET'] = '<link rel="stylesheet" href="css/highlight.css" type="text/css">';
// ---
@ -82,7 +82,23 @@ $content['EXPAND_HIGHLIGHT'] = "false";
//else
$content['TITLE'] = "phpLogCon :: Home";
// Read and process filters from search dialog!
// --- BEGIN Define Helper functions
function HighLightString($highlightArray, $strmsg)
{
if ( isset($highlightArray) )
{
// TODO OPTIMIZE - USING FONT TAG as SPAN is HIDDEN if MESSAGE POPUP is ENABNLED!
foreach( $highlightArray as $highlightword )
$strmsg = preg_replace( "/(" . $highlightword['highlight'] . ")/i", '<font class="' . $highlightword['cssclass'] . '">\\1</font>', $strmsg );
}
// return result
return $strmsg;
}
// ---
// --- Read and process filters from search dialog!
if ( (isset($_POST['search']) || isset($_GET['search'])) && (isset($_POST['filter']) || isset($_GET['filter'])) )
{
// Copy search over
@ -231,21 +247,30 @@ if ( (isset($_POST['search']) || isset($_GET['search'])) && (isset($_POST['filte
$content['EXPAND_HIGHLIGHT'] = "true";
}
}
// ---
// --- BEGIN Custom Code
if ( isset($content['Sources'][$currentSourceID]) && $content['Sources'][$currentSourceID]['SourceType'] == SOURCE_DISK )
{
// Preprocessing the fields we need
foreach($content['Columns'] as $mycolkey)
{
$content['fields'][$mycolkey]['FieldID'] = $mycolkey;
$content['fields'][$mycolkey]['FieldCaption'] = $content[ $fields[$mycolkey]['FieldCaptionID'] ];
$content['fields'][$mycolkey]['FieldType'] = $fields[$mycolkey]['FieldType'];
$content['fields'][$mycolkey]['FieldSortable'] = $fields[$mycolkey]['Sortable'];
$content['fields'][$mycolkey]['DefaultWidth'] = $fields[$mycolkey]['DefaultWidth'];
// $content['fields'][$mycolkey]['FieldAlign'] = $fields[$mycolkey]['FieldAlign'];
}
// Obtain and get the Config Object
$stream_config = $content['Sources'][$currentSourceID]['ObjRef'];
// Create LogStream Object
$stream = $stream_config->LogStreamFactory($stream_config);
$stream->SetFilter($content['searchstr']);
$stream->Open( array ( SYSLOG_DATE, SYSLOG_FACILITY, SYSLOG_FACILITY_TEXT, SYSLOG_SEVERITY, SYSLOG_SEVERITY_TEXT, SYSLOG_HOST, SYSLOG_SYSLOGTAG, SYSLOG_MESSAGE, SYSLOG_MESSAGETYPE ), true);
$stream->Open( $content['Columns'], true );
// $stream->Open( array ( SYSLOG_DATE, SYSLOG_FACILITY, SYSLOG_FACILITY_TEXT, SYSLOG_SEVERITY, SYSLOG_SEVERITY_TEXT, SYSLOG_HOST, SYSLOG_SYSLOGTAG, SYSLOG_MESSAGE, SYSLOG_MESSAGETYPE ), true);
$stream->SetReadDirection(EnumReadDirection::Backward);
$uID = $currentUID;
@ -266,55 +291,7 @@ if ( isset($content['Sources'][$currentSourceID]) && $content['Sources'][$curren
do
{
// Copy Obtained array
$content['syslogmessages'][] = $logArray;
// Copy UID
$content['syslogmessages'][$counter]['UID'] = $uID;
// --- Popup Details
if ( isset($CFG['ViewEnableDetailPopups']) && $CFG['ViewEnableDetailPopups'] == 1 )
{
$content['syslogmessages'][$counter]['popupcaption'] = GetAndReplaceLangStr( $content['LN_GRID_POPUPDETAILS'], $content['syslogmessages'][$counter]['UID']);
$content['syslogmessages'][$counter]['popupdetails'] = "true";
foreach($content['syslogmessages'][$counter] as $mykey => $myfield)
{
// Set key!
$content['syslogmessages'][$counter]['messagesdetails'][]['fieldtitle']= $mykey;
// Get ArrayIndex
$myIndex = count($content['syslogmessages'][$counter]['messagesdetails']) - 1;
// --- Set CSS Class
if ( $myIndex % 2 == 0 )
$content['syslogmessages'][$counter]['messagesdetails'][$myIndex]['cssclass'] = "line1";
else
$content['syslogmessages'][$counter]['messagesdetails'][$myIndex]['cssclass'] = "line2";
// ---
// Set field value
$content['syslogmessages'][$counter]['messagesdetails'][$myIndex]['fieldvalue']= $myfield;
}
}
else
$content['syslogmessages'][$counter]['popupdetails'] = "false";
// ---
// Set truncasted message for display
if ( isset($logArray[SYSLOG_MESSAGE]) )
$content['syslogmessages'][$counter][SYSLOG_MESSAGETRUNSCATED] = GetStringWithHTMLCodes(strlen($logArray[SYSLOG_MESSAGE]) > $CFG['ViewMessageCharacterLimit'] ? substr($logArray[SYSLOG_MESSAGE], 0, $CFG['ViewMessageCharacterLimit'] ) . " ..." : $logArray[SYSLOG_MESSAGE]);
else
$content['syslogmessages'][$counter][SYSLOG_MESSAGETRUNSCATED] = "";
if ( isset($content['highlightwords']) )
{
// We need to highlight some words ^^!
foreach( $content['highlightwords'] as $highlightword )
$content['syslogmessages'][$counter][SYSLOG_MESSAGETRUNSCATED] = preg_replace( "/(" . $highlightword['highlight'] . ")/i", '<span class="' . $highlightword['cssclass'] . '">\\1</span>', $content['syslogmessages'][$counter][SYSLOG_MESSAGETRUNSCATED] );
}
// --- Create Displayable DataStamp
$content['syslogmessages'][$counter][SYSLOG_DATE_FORMATED] = GetFormatedDate($content['syslogmessages'][$counter][SYSLOG_DATE]);
// ---
// $content['syslogmessages'][] = $logArray;
// --- Set CSS Class
if ( $counter % 2 == 0 )
@ -323,32 +300,140 @@ if ( isset($content['Sources'][$currentSourceID]) && $content['Sources'][$curren
$content['syslogmessages'][$counter]['cssclass'] = "line2";
// ---
// --- Set Syslog severity and facility col colors
if ( isset($content['syslogmessages'][$counter][SYSLOG_SEVERITY]) && strlen($content['syslogmessages'][$counter][SYSLOG_SEVERITY]) > 0)
// --- Now we populate the values array!
foreach($content['Columns'] as $mycolkey)
{
$content['syslogmessages'][$counter]['severity_color'] = $severity_colors[$content['syslogmessages'][$counter][SYSLOG_SEVERITY]];
$content['syslogmessages'][$counter]['severity_cssclass'] = "lineColouredWhite";
}
else
{
// Use default colour!
$content['syslogmessages'][$counter]['severity_color'] = $severity_colors[SYSLOG_INFO];
$content['syslogmessages'][$counter]['severity_cssclass'] = $content['syslogmessages'][$counter]['cssclass'];
}
if ( isset($logArray[$mycolkey]) )
{
// Set defaults
$content['syslogmessages'][$counter]['values'][$mycolkey]['FieldAlign'] = $fields[$mycolkey]['FieldAlign'];
$content['syslogmessages'][$counter]['values'][$mycolkey]['fieldcssclass'] = $content['syslogmessages'][$counter]['cssclass'];
$content['syslogmessages'][$counter]['values'][$mycolkey]['fieldbgcolor'] = "";
$content['syslogmessages'][$counter]['values'][$mycolkey]['hasdetails'] = "false";
if ( isset($content['syslogmessages'][$counter][SYSLOG_FACILITY]) && strlen($content['syslogmessages'][$counter][SYSLOG_FACILITY]) > 0)
{
$content['syslogmessages'][$counter]['facility_color'] = $facility_colors[$content['syslogmessages'][$counter][SYSLOG_FACILITY]];
$content['syslogmessages'][$counter]['facility_cssclass'] = "lineColouredBlack";
if ( $content['fields'][$mycolkey]['FieldType'] == FILTER_TYPE_DATE )
{
$content['syslogmessages'][$counter]['values'][$mycolkey]['fieldvalue'] = GetFormatedDate($logArray[$mycolkey]);
}
else if ( $content['fields'][$mycolkey]['FieldType'] == FILTER_TYPE_NUMBER )
{
$content['syslogmessages'][$counter]['values'][$mycolkey]['fieldvalue'] = $logArray[$mycolkey];
// Special style classes and colours for SYSLOG_FACILITY
if ( $mycolkey == SYSLOG_FACILITY )
{
if ( isset($logArray[$mycolkey][SYSLOG_FACILITY]) && strlen($logArray[$mycolkey][SYSLOG_FACILITY]) > 0)
{
$content['syslogmessages'][$counter]['values'][$mycolkey]['fieldbgcolor'] = 'bgcolor="' . $facility_colors[ $logArray[SYSLOG_FACILITY] ] . '" ';
$content['syslogmessages'][$counter]['values'][$mycolkey]['fieldcssclass'] = "lineColouredBlack";
// Set Human readable Facility!
$content['syslogmessages'][$counter]['values'][$mycolkey]['fieldvalue'] = GetFacilityDisplayName( $logArray[$mycolkey] );
}
else
{
// Use default colour!
$content['syslogmessages'][$counter]['values'][$mycolkey]['fieldbgcolor'] = 'bgcolor="' . $facility_colors[SYSLOG_LOCAL0] . '" ';
}
}
else if ( $mycolkey == SYSLOG_SEVERITY )
{
if ( isset($logArray[$mycolkey][SYSLOG_SEVERITY]) && strlen($logArray[$mycolkey][SYSLOG_SEVERITY]) > 0)
{
$content['syslogmessages'][$counter]['values'][$mycolkey]['fieldbgcolor'] = 'bgcolor="' . $severity_colors[ $logArray[SYSLOG_SEVERITY] ] . '" ';
$content['syslogmessages'][$counter]['values'][$mycolkey]['fieldcssclass'] = "lineColouredWhite";
// Set Human readable Facility!
$content['syslogmessages'][$counter]['values'][$mycolkey]['fieldvalue'] = GetSeverityDisplayName( $logArray[$mycolkey] );
}
else
{
// Use default colour!
$content['syslogmessages'][$counter]['values'][$mycolkey]['fieldbgcolor'] = 'bgcolor="' . $severity_colors[SYSLOG_INFO] . '" ';
}
}
else if ( $mycolkey == SYSLOG_MESSAGETYPE )
{
}
}
else if ( $content['fields'][$mycolkey]['FieldType'] == FILTER_TYPE_STRING )
{
// kindly copy!
$content['syslogmessages'][$counter]['values'][$mycolkey]['fieldvalue'] = $logArray[$mycolkey];
// Special Handling for the Syslog Message!
if ( $mycolkey == SYSLOG_MESSAGE )
{
// Set truncasted message for display
if ( isset($logArray[SYSLOG_MESSAGE]) )
{
$content['syslogmessages'][$counter]['values'][$mycolkey]['fieldvalue'] = GetStringWithHTMLCodes(strlen($logArray[SYSLOG_MESSAGE]) > $CFG['ViewMessageCharacterLimit'] ? substr($logArray[SYSLOG_MESSAGE], 0, $CFG['ViewMessageCharacterLimit'] ) . " ..." : $logArray[SYSLOG_MESSAGE]);
}
else
$content['syslogmessages'][$counter]['values'][$mycolkey]['fieldvalue'] = "";
// If we need to highlight some words ^^!
if ( isset($content['highlightwords']) )
$content['syslogmessages'][$counter]['values'][$mycolkey]['fieldvalue'] = HighLightString( $content['highlightwords'], $content['syslogmessages'][$counter]['values'][$mycolkey]['fieldvalue'] );
if ( isset($CFG['ViewEnableDetailPopups']) && $CFG['ViewEnableDetailPopups'] == 1 )
{
$content['syslogmessages'][$counter]['values'][$mycolkey]['popupcaption'] = GetAndReplaceLangStr( $content['LN_GRID_POPUPDETAILS'], $logArray[SYSLOG_UID]);
$content['syslogmessages'][$counter]['values'][$mycolkey]['hasdetails'] = "true";
foreach($content['syslogmessages'][$counter]['values'] as $mykey => $myfield)
{
// Set Caption!
$content['syslogmessages'][$counter]['values'][$mycolkey]['messagesdetails'][]['detailfieldtitle']= $content['fields'][$mykey]['FieldCaption'];
// Get ArrayIndex
$myIndex = count($content['syslogmessages'][$counter]['values'][$mycolkey]['messagesdetails']) - 1;
// --- Set CSS Class
if ( $myIndex % 2 == 0 )
$content['syslogmessages'][$counter]['values'][$mycolkey]['messagesdetails'][$myIndex]['detailscssclass'] = "line1";
else
$content['syslogmessages'][$counter]['values'][$mycolkey]['messagesdetails'][$myIndex]['detailscssclass'] = "line2";
// ---
// If message field, we need to handle differently!
if ( $mykey == SYSLOG_MESSAGE )
{
if ( isset($content['highlightwords']) )
$content['syslogmessages'][$counter]['values'][$mycolkey]['messagesdetails'][$myIndex]['detailfieldvalue'] = HighLightString( $content['highlightwords'],GetStringWithHTMLCodes($logArray[SYSLOG_MESSAGE]) );
else
$content['syslogmessages'][$counter]['values'][$mycolkey]['messagesdetails'][$myIndex]['detailfieldvalue'] = GetStringWithHTMLCodes($logArray[SYSLOG_MESSAGE]);
}
else // Just set field value
$content['syslogmessages'][$counter]['values'][$mycolkey]['messagesdetails'][$myIndex]['detailfieldvalue'] = $myfield['fieldvalue'];
}
}
}
}
}
}
else
// ---
// --- Popup Details
if ( isset($CFG['ViewEnableDetailPopups']) && $CFG['ViewEnableDetailPopups'] == 1 )
{
// Use default colour!
$content['syslogmessages'][$counter]['facility_color'] = $facility_colors[SYSLOG_LOCAL0];
$content['syslogmessages'][$counter]['facility_cssclass'] = $content['syslogmessages'][$counter]['cssclass'];
}
// else
// $content['syslogmessages'][$counter]['popupdetails'] = "false";
// ---
/*
// --- Prepare message if needed!
if ( $CFG['ShowMessage'] == 1 )
{
}
else
$content['syslogmessages'][$counter]['ShowMessage'] = "false";
// ---
*/
// Increment Counter
$counter++;
} while ($stream->ReadNext($uID, $logArray) == SUCCESS && $counter <= $CFG['ViewEntriesPerPage']);

View File

@ -16,13 +16,6 @@ $content['LN_GEN_PREVIOUSPAGE'] = "Previous Page";
$content['LN_ERROR_INSTALLFILEREMINDER'] = "Warning! You still have NOT removed the 'install.php' from your PhpLogCon main directory!";
$content['LN_TOP_NUM'] = "No.";
$content['LN_TOP_UID'] = "uID";
$content['LN_GRID_DATE'] = "Date";
$content['LN_GRID_FACILITY'] = "Facility";
$content['LN_GRID_SEVERITY'] = "Severity";
$content['LN_GRID_SYSLOGTAG'] = "SyslogTag";
$content['LN_GRID_INFOUNIT'] = "InfoUnit";
$content['LN_GRID_HOST'] = "Source";
$content['LN_GRID_MSG'] = "Message";
$content['LN_GRID_POPUPDETAILS'] = "Details for Syslogmessage with ID '%1'";
$content['LN_SEARCH_USETHISBLA'] = "Use the form below and your advanced search will appear here";
@ -37,7 +30,6 @@ $content['LN_HIGHLIGHT'] = "Hightlight >>";
$content['LN_HIGHLIGHT_OFF'] = "Hightlight <<";
$content['LN_HIGHLIGHT_WORDS'] = "Hightlight words comma separated";
// Filter Options
$content['LN_FILTER_DATE'] = "Datetime Range";
$content['LN_FILTER_DATEMODE'] = "Select mode";
@ -60,4 +52,15 @@ $content['LN_FILTER_MESSAGE'] = "Syslog Message";
$content['LN_FILTER_SYSLOGTAG'] = "Syslogtag";
$content['LN_FILTER_SOURCE'] = "Source (Hostname)";
// Field Captions
$content['LN_FIELDS_DATE'] = "Date";
$content['LN_FIELDS_FACILITY'] = "Facility";
$content['LN_FIELDS_SEVERITY'] = "Severity";
$content['LN_FIELDS_HOST'] = "Host";
$content['LN_FIELDS_SYSLOGTAG'] = "Syslogtag";
$content['LN_FIELDS_PROCESSID'] = "ProcessID";
$content['LN_FIELDS_MESSAGETYPE'] = "Messagetype";
$content['LN_FIELDS_UID'] = "uID";
$content['LN_FIELDS_MESSAGE'] = "Message";
?>

View File

@ -92,47 +92,66 @@
<!-- IF syslogmessagesenabled="true" -->
<table width="100%" cellpadding="0" cellspacing="1" border="0" align="center" class="with_border_alternate">
<tr>
<td width="50" class="cellmenu1" align="center" nowrap><B>{LN_TOP_UID}</B></td>
<td width="100" class="cellmenu1" align="center" nowrap><A HREF="?sorting=timereported{additional_url}" class="cellmenu1_link" >{LN_GRID_DATE}</A></td>
<td width="50" class="cellmenu1" align="center" nowrap><A HREF="?sorting=syslogfacility{additional_url}" class="cellmenu1_link" >{LN_GRID_FACILITY}</A></td>
<!-- <td width="50" class="cellmenu1" align="center" nowrap><B>{LN_TOP_UID}</B></td>-->
<!-- BEGIN fields -->
<td width="{DefaultWidth}" class="cellmenu1" align="center" nowrap>
<!-- IF FieldSortable="true" -->
<a HREF="?sorting={FieldID}{additional_url}" class="cellmenu1_link" >
<!-- ENDIF FieldSortable="true" -->
<B>{FieldCaption}</B>
<!-- IF FieldSortable="true" -->
</a>
<!-- ENDIF FieldSortable="true" -->
</td>
<!-- END fields -->
<!-- <td width="50" class="cellmenu1" align="center" nowrap><A HREF="?sorting=syslogfacility{additional_url}" class="cellmenu1_link" >{LN_GRID_FACILITY}</A></td>
<td width="50" class="cellmenu1" align="center" nowrap><A HREF="?sorting=syslogseverity{additional_url}" class="cellmenu1_link" >{LN_GRID_SEVERITY}</A></td>
<td width="50" class="cellmenu1" align="center" nowrap><A HREF="?sorting=syslogtag{additional_url}" class="cellmenu1_link" >{LN_GRID_SYSLOGTAG}</A></td>
<td width="75" class="cellmenu1" align="center" nowrap><A HREF="?sorting=IUT{additional_url}" class="cellmenu1_link" >{LN_GRID_INFOUNIT}</A></td>
<td width="50" class="cellmenu1" align="center" nowrap><A HREF="?sorting=FROMHOST{additional_url}" class="cellmenu1_link" >{LN_GRID_HOST}</A></td>
<td width="100%" class="cellmenu1" align="center" nowrap><B>{LN_GRID_MSG}</B></td>
<td width="50" class="cellmenu1" align="center" nowrap><A HREF="?sorting=FROMHOST{additional_url}" class="cellmenu1_link" >{LN_GRID_HOST}</A></td>
<td width="100%" class="cellmenu1" align="center" nowrap><B>{LN_FIELDS_MESSAGE}</B></td>
-->
</tr>
<!-- BEGIN syslogmessages -->
<tr>
<td align="right" class="{cssclass}"><B>{UID}</B></td>
<td align="center" class="{cssclass}" nowrap><B>{timereported_formatted}</B></td>
<!-- <td align="right" class="{cssclass}"><B>{UID}</B></td>-->
<!-- BEGIN values -->
<td align="{FieldAlign}" class="{fieldcssclass}" {fieldbgcolor} valign="top">
<!-- IF hasdetails="false" -->
<B>{fieldvalue}</B>
<!-- ENDIF hasdetails="false" -->
<!-- IF hasdetails="true" -->
<a href="?" class="syslogdetails">
{fieldvalue}
<span>
<table cellpadding="0" cellspacing="1" border="0" width="500" align="left" class="with_border_alternate">
<tr>
<td colspan="2" class="cellmenu1" align="center"><B>{popupcaption}</B></td>
</tr>
<!-- BEGIN messagesdetails -->
<tr>
<td width="150" nowrap class="cellmenu2">{detailfieldtitle}</td>
<td width="100%" class="{detailscssclass}" >{detailfieldvalue}</td>
</tr>
<!-- END messagesdetails -->
</table>
</span>
</a>
<!-- ENDIF hasdetails="true" -->
</td>
<!-- END values -->
<!--
<td align="left" class="{facility_cssclass}" bgcolor="{facility_color}" nowrap><B>{syslogfacility-text}</B></td>
<td align="left" class="{severity_cssclass}" bgcolor="{severity_color}" nowrap><B>{syslogseverity-text}</B></td>
<td align="left" class="{cssclass}" nowrap><B>{syslogtag}</B></td>
<td align="center" class="{cssclass}"><B>{IUT}</B></td>
<td align="left" class="{cssclass}" nowrap><B>{FROMHOST}</B></td>
<td align="left" class="{cssclass}">
<!-- IF popupdetails="true" -->
<a href="?todo" class="syslogdetails">{msgtrunscated}
<span>
<table cellpadding="0" cellspacing="1" border="0" align="center" class="with_border_alternate">
<tr>
<td colspan="2" class="cellmenu1" align="center"><B>{popupcaption}</B></td>
</tr>
<!-- BEGIN messagesdetails -->
<tr>
<td width="150" nowrap class="cellmenu2">{fieldtitle}</td>
<td width="100%" class="{cssclass}" >{fieldvalue}</td>
</tr>
<!-- END messagesdetails -->
</table>
</span>
</a>
<!-- ENDIF popupdetails="true" -->
<!-- IF popupdetails="false" -->
<B>{msgtrunscated}</B>
<!-- ENDIF popupdetails="false" -->
</td>
-->
</tr>
<!-- END syslogmessages -->