summaryrefslogtreecommitdiffstats
path: root/usr/local/www/diag_pkglogs.php
diff options
context:
space:
mode:
authorColin Smith <colin@pfsense.org>2005-04-05 01:57:28 +0000
committerColin Smith <colin@pfsense.org>2005-04-05 01:57:28 +0000
commitdf01982a4d5efb7353b4333228dd32f7f98ef357 (patch)
tree0d7e266feca8cfaf9f2f778a562c62ab052da70c /usr/local/www/diag_pkglogs.php
parent07d40ab8d3e106e223eceb1a89e0ba37f1b0676a (diff)
downloadpfsense-df01982a4d5efb7353b4333228dd32f7f98ef357.zip
pfsense-df01982a4d5efb7353b4333228dd32f7f98ef357.tar.gz
Add dynamic package logging. I'm new to PHP integration with actual HTML, so that in particular could likely be optimized.
Diffstat (limited to 'usr/local/www/diag_pkglogs.php')
-rwxr-xr-xusr/local/www/diag_pkglogs.php111
1 files changed, 111 insertions, 0 deletions
diff --git a/usr/local/www/diag_pkglogs.php b/usr/local/www/diag_pkglogs.php
new file mode 100755
index 0000000..57d74c2
--- /dev/null
+++ b/usr/local/www/diag_pkglogs.php
@@ -0,0 +1,111 @@
+#!/usr/local/bin/php
+<?php
+/* $Id$ */
+/*
+ diag_pkglogs.php
+ Copyright (C) 2005 Colin Smith
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
+ OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+*/
+
+require("guiconfig.inc");
+require("xmlparse_pkg.inc");
+
+$nentries = $config['syslog']['nentries'];
+if (!$nentries)
+ $nentries = 50;
+
+if ($_POST['clear']) {
+ exec("/usr/sbin/clog -i -s 262144 {$system_logfile}");
+}
+
+?>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<title><?=gentitle("Diagnostics: Package logs");?></title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<link href="gui.css" rel="stylesheet" type="text/css">
+</head>
+
+<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
+<?php include("fbegin.inc"); ?>
+<p class="pgtitle">Diagnostics: Package logs</p>
+<table width="100%" border="0" cellpadding="0" cellspacing="0">
+ <tr><td>
+ <ul id="tabnav">
+ <?php
+ $i = 0;
+ $apkg = $_POST['pkg'];
+ if(!isset($_POST['pkg'])) $apkg = false;
+ foreach($config['installedpackages']['package'] as $package) {
+ $pkgname = $package['name'];
+ $pkg_config = parse_xml_config_pkg("/usr/local/pkg/" . $package['configurationfile'], "packagegui");
+ if(is_array($pkg_config['logging']) and isset($pkg_config['logging']['logtab'])) {
+ if($apkg == false) $apkg = $pkgname;
+ if($apkg == $pkgname) { ?>
+ <li class="tabact"><?= $pkg_config['name']; ?></li>
+ <?php
+ } else { ?>
+ <li class="tabinact"><a href="diag_pkglogs.php?pkg=<?= $pkgname; ?>"><?= $pkg_config['logging']['logtab']; ?></a></li>
+ <?php
+ }
+ }
+ $i++;
+ }
+ ?>
+ </ul>
+ </td></tr>
+ <tr>
+ <td class="tabcont">
+ <table width="100%" border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td colspan="2" class="listtopic">
+ Last <?=$nentries;?> <?=$apkg;?> entries</td>
+ </tr>
+ <?php
+ $apkgid = get_pkg_id($apkg);
+ $apkg_config = parse_xml_config_pkg("/usr/local/pkg/" . $config['installedpackages']['package'][$apkgid]['configurationfile'], "packagegui");
+ if(isset($apkg_config['logging']['logfile'])) {
+ $logfile = $apkg_config['logging']['logfile'];
+ } else {
+ $logfile = "{$g['varlog_path']}/system.log";
+ }
+ if(isset($apkg_config['logging']['grepfor']) and isset($apkg_config['logging']['invertgrep'])) {
+ dump_clog($logfile, $nentries, $apkg_config['logging']['grepfor'], true);
+ } elseif(isset($apkg_config['logging']['grepfor'])) {
+ dump_clog($logfile, $nentries, $apkg_config['logging']['grepfor']);
+ } else {
+ dump_clog($logfile, $nentries);
+ }
+ ?>
+ </table>
+ <br><form action="diag_logs.php" method="post">
+<input name="clear" type="submit" class="formbtn" value="Clear log">
+</form>
+ </td>
+ </tr>
+</table>
+<?php include("fend.inc"); ?>
+</body>
+</html>
OpenPOWER on IntegriCloud