***********************
** FILE NAME : log.php
** SYSTEM NAME : Gnucomo - Gnu Computer Monitoring
-** VERSION NUMBER : $Revision: 1.3 $
+** VERSION NUMBER : $Revision: 1.8 $
**
** DESCRIPTION : Logs page
**
********************************
** ORIGINAL AUTHOR : Arjen Baart - arjen@andromeda.nl
** CREATION DATE : Dec 04, 2002
-** LAST UPDATE : Feb 16, 2003
+** LAST UPDATE : Jul 15, 2003
** MODIFICATIONS :
**************************************************************************/
/*****************************
$Log: log.php,v $
- Revision 1.3 2003-02-21 08:50:12 arjen
+ Revision 1.8 2007-11-21 14:38:06 arjen
+ The buttonbar at the top of each page is now a fixed 'div' element
+ instead of a framed page.
+ Contributed by Edwin Nadorp.
+
+ Revision 1.7 2007/10/27 08:38:18 arjen
+ Removed link to advanced log analysis
+
+ Revision 1.6 2005/06/04 07:18:26 arjen
+ Added a view for the log analysis with a link from the log page.
+
+ Revision 1.5 2003/08/11 17:59:17 arjen
+ BUGFIX: Convert special characters for HTML (<, >, and &) into
+ their entities.
+
+ Revision 1.4 2003/07/15 11:03:39 arjen
+ Show the log one day at a time.
+
+ Revision 1.3 2003/02/21 08:50:12 arjen
Database optimizations.
Revision 1.2 2003/02/13 09:01:29 arjen
******************************/
-// RCSID = "$Id: log.php,v 1.3 2003-02-21 08:50:12 arjen Exp $";
+// RCSID = "$Id: log.php,v 1.8 2007-11-21 14:38:06 arjen Exp $";
ini_set('include_path', '.:./classes:../phpclasses');
{
if (!empty($_GET['oid']))
{
- $res = pg_exec($this->database, "SELECT objectname FROM object WHERE objectid=CAST'" . $_GET['oid']. "' AS BIGINT)");
+ $oid = $_GET['oid'];
+ $res = pg_exec($this->database, "SELECT objectname FROM object
+ WHERE objectid=CAST('$oid' AS BIGINT)");
$obj = pg_fetch_object($res, 0);
- echo "<h1>Log for " . $obj->objectname . "</h1><hr>";
+ echo "<script type='text/ecmascript'>
+ document.getElementById('menu_title').innerHTML = \"<h1>Log for "
+ . $obj->objectname . "<\/h1>\"
+ </script>";
+
+ // Determine which day to display.
+ // This is either from a previous button though a _POST[] variable
+ // or the last day in the log table by default.
+
+ if (empty($_GET['logday']))
+ {
+ $res = pg_exec($this->database, "SELECT date_trunc('day',object_timestamp) FROM log
+ WHERE objectid='$oid'
+ ORDER BY object_timestamp DESC LIMIT 1");
+
+ if( pg_num_rows($res) > 0 )
+ {
+ $last_time = pg_fetch_object($res, 0);
+ $logday = strtotime($last_time->date_trunc);
+ }
+ else
+ {
+ $logday = "";
+ }
+ }
+ else
+ {
+ $logday = $_GET['logday'];
+ }
+
+ // Make buttons to request the previous and the next day of logs.
+
+ echo "<div id=\"log_date\">";
+ $logday1 = $logday - 24 * 60 * 60;
+ echo "<a href=\"log.php?oid=$oid&logday=$logday1\" title=\"previous day\"><<</a>";
+ echo " " . date('F d, Y', $logday) . " ";
+ $logday2 = $logday + 24 * 60 * 60;
+ echo "<a href=\"log.php?oid=$oid&logday=$logday2\" title=\"next day\">>></a>";
+ echo "</div>";
+
+ // Show the log for one day only.
- $res = pg_exec($this->database, "SELECT object_timestamp, servicecode, rawdata FROM log "
- ."WHERE objectid = CAST('" . $_GET['oid'] . "' AS BIGINT) ");
+ $res = pg_exec($this->database, "SELECT logid, object_timestamp, servicecode, rawdata FROM log "
+ ."WHERE objectid = CAST('$oid' AS BIGINT)
+ AND date_trunc('day', object_timestamp)='" . date('Y-m-d', $logday) . "'
+ ORDER BY object_timestamp, logid");
- echo "<table>";
+ echo "<table>\n";
+ echo "<tr><th>Date</th><th>Service</th><th>Log</th></tr>\n";
$row = 0;
while ($row < pg_numrows($res))
{
$log = pg_fetch_object($res, $row);
?>
<tr><td class='time'>
- <?php echo $log->object_timestamp?>
+ <?php echo $log->object_timestamp?>
</td><td>
<?php echo $log->servicecode?>
</td><td>
- <?php echo $log->rawdata?>
+ <?php echo htmlentities($log->rawdata)?>
</td></tr>
<?php
$row++;