3 /**************************************************************************
4 ** (c) Copyright 2003, Andromeda Technology & Automation
5 ** This is free software; you can redistribute it and/or modify it under the
6 ** terms of the GNU General Public License, see the file COPYING.
7 ***************************************************************************
8 ** MODULE INFORMATION *
9 ***********************
10 ** FILE NAME : log.php
11 ** SYSTEM NAME : Gnucomo - Gnu Computer Monitoring
12 ** VERSION NUMBER : $Revision: 1.7 $
14 ** DESCRIPTION : Logs page
19 ***************************************************************************
20 ** ADMINISTRATIVE INFORMATION *
21 ********************************
22 ** ORIGINAL AUTHOR : Arjen Baart - arjen@andromeda.nl
23 ** CREATION DATE : Dec 04, 2002
24 ** LAST UPDATE : Jul 15, 2003
26 **************************************************************************/
28 /*****************************
30 Revision 1.7 2007-10-27 08:38:18 arjen
31 Removed link to advanced log analysis
33 Revision 1.6 2005/06/04 07:18:26 arjen
34 Added a view for the log analysis with a link from the log page.
36 Revision 1.5 2003/08/11 17:59:17 arjen
37 BUGFIX: Convert special characters for HTML (<, >, and &) into
40 Revision 1.4 2003/07/15 11:03:39 arjen
41 Show the log one day at a time.
43 Revision 1.3 2003/02/21 08:50:12 arjen
44 Database optimizations.
46 Revision 1.2 2003/02/13 09:01:29 arjen
47 All web interface pages use the page class.
49 Revision 1.2 2003/02/05 09:48:14 arjen
50 Added display and handling of notifications
52 ******************************/
54 // RCSID = "$Id: log.php,v 1.7 2007-10-27 08:38:18 arjen Exp $";
56 ini_set('include_path', '.:./classes:../phpclasses');
58 require_once('page.class.php');
61 class log_page extends page
66 if (!empty($_GET['oid']))
68 $res = pg_exec($this->database, "SELECT objectname FROM object
69 WHERE objectid=CAST('" . $_GET['oid']. "' AS BIGINT)");
70 $obj = pg_fetch_object($res, 0);
71 echo "<h1>Log for " . $obj->objectname . "</h1><hr>";
73 // Determine which day to display.
74 // This is either from a previous button though a _POST[] variable
75 // or the last day in the log table by default.
77 if (empty($_POST['logday']))
79 $res = pg_exec($this->database, "SELECT date_trunc('day',object_timestamp) FROM log
80 WHERE objectid='". $_GET['oid'] ."'
81 ORDER BY object_timestamp DESC LIMIT 1");
83 $last_time = pg_fetch_object($res, 0);
84 $logday = strtotime($last_time->date_trunc);
88 $logday = $_POST['logday'];
91 // Make buttons to request the previous and the next day of logs.
93 echo "<form method='POST'>";
94 echo "<input type='submit' value='<<'>";
95 echo "<input type='hidden' name='logday' value='" . ($logday - 24 * 60 * 60) . "'>";
98 echo "<h3>" . date('F d, Y', $logday) ."</h3>";
100 echo "<form method='POST'>";
101 echo "<input type='submit' value='>>'>";
102 echo "<input type='hidden' name='logday' value='" . ($logday + 24 * 60 * 60) . "'>";
105 // Show the log for one day only.
107 $res = pg_exec($this->database, "SELECT logid, object_timestamp, servicecode, rawdata FROM log "
108 ."WHERE objectid = CAST('" . $_GET['oid'] . "' AS BIGINT)
109 AND date_trunc('day', object_timestamp)='" . date('Y-m-d', $logday) . "'
110 ORDER BY object_timestamp, logid");
113 echo "<tr><th>Date</th><th>Service</th><th>Log</th></tr>\n";
115 while ($row < pg_numrows($res))
117 $log = pg_fetch_object($res, $row);
119 <tr><td class='time'>
120 <?php echo $log->object_timestamp?>
122 <?php echo $log->servicecode?>
124 <?php echo htmlentities($log->rawdata)?>
134 $page = new log_page("Gnucomo system logs");