mirror of
https://github.com/tuxis-ie/nsedit.git
synced 2025-04-18 19:59:30 +03:00
Allow viewing of past logs.
Add a command-line PHP script for rotation in cron.
This commit is contained in:
parent
56c1789b30
commit
f081d96b0c
4 changed files with 88 additions and 9 deletions
|
@ -308,6 +308,27 @@ function rotatelogs() {
|
|||
|
||||
}
|
||||
|
||||
function listrotatedlogs() {
|
||||
global $logging, $logsdirectory;
|
||||
if ($logging !== TRUE)
|
||||
return FALSE;
|
||||
|
||||
$list = scandir($logsdirectory,SCANDIR_SORT_DESCENDING);
|
||||
|
||||
if($list === FALSE) {
|
||||
writelog("Logs directory cannot read.");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
$list=array_filter($list,
|
||||
function ($val) {
|
||||
return(preg_match('/^[0-9]{4}-[0-9]{2}-[0-9]{2}-[0-9]{6}\.json/',$val) == 1);
|
||||
}
|
||||
);
|
||||
|
||||
return $list;
|
||||
}
|
||||
|
||||
function writelog($line) {
|
||||
global $logging;
|
||||
if ($logging !== TRUE)
|
||||
|
|
45
index.php
45
index.php
|
@ -189,6 +189,21 @@ if ($blocklogin === TRUE) {
|
|||
</div>
|
||||
<div id="logs">
|
||||
<div class="tables" id="Logs"></div>
|
||||
<?php if($allowrotatelogs) { ?>
|
||||
<br>Log entries being viewed:
|
||||
<select id="logfile">
|
||||
<option value="">(Current logs)</option>
|
||||
<?php
|
||||
$logfiles=listrotatedlogs();
|
||||
if($logfiles !== FALSE) {
|
||||
foreach ($logfiles as $filename) {
|
||||
echo '<option value="' . $filename . '">' . str_replace(".json","",$filename) . "</option>\n";
|
||||
}
|
||||
}
|
||||
?></select>
|
||||
<?php } else { ?>
|
||||
<input type="hidden" id="logfile" value="">
|
||||
<?php } ?>
|
||||
</div>
|
||||
<?php } ?>
|
||||
|
||||
|
@ -925,18 +940,18 @@ $(document).ready(function () {
|
|||
});
|
||||
|
||||
<?php if (is_adminuser()) { ?>
|
||||
$('#Logs').hide();
|
||||
$('#logs').hide();
|
||||
$('#Users').hide();
|
||||
$('#AboutMe').hide();
|
||||
$('#aboutme').click(function () {
|
||||
$('#Logs').hide();
|
||||
$('#logs').hide();
|
||||
$('#Users').hide();
|
||||
$('#MasterZones').hide();
|
||||
$('#SlaveZones').hide();
|
||||
$('#AboutMe').show();
|
||||
});
|
||||
$('#useradmin').click(function () {
|
||||
$('#Logs').hide();
|
||||
$('#logs').hide();
|
||||
$('#MasterZones').hide();
|
||||
$('#SlaveZones').hide();
|
||||
$('#AboutMe').hide();
|
||||
|
@ -944,7 +959,7 @@ $(document).ready(function () {
|
|||
$('#Users').show();
|
||||
});
|
||||
$('#zoneadmin').click(function () {
|
||||
$('#Logs').hide();
|
||||
$('#logs').hide();
|
||||
$('#Users').hide();
|
||||
$('#AboutMe').hide();
|
||||
$('#MasterZones').show();
|
||||
|
@ -955,8 +970,10 @@ $(document).ready(function () {
|
|||
$('#AboutMe').hide();
|
||||
$('#MasterZones').hide();
|
||||
$('#SlaveZones').hide();
|
||||
$('#Logs').jtable('load');
|
||||
$('#Logs').show();
|
||||
$('#Logs').jtable('load', {
|
||||
logfile: $('#logfile').val()
|
||||
});
|
||||
$('#logs').show();
|
||||
});
|
||||
$('#Users').jtable({
|
||||
title: 'Users',
|
||||
|
@ -1032,6 +1049,7 @@ $(document).ready(function () {
|
|||
$( this ).dialog( 'close' );
|
||||
$('#Logs').find('.jtable-title-text').text('Logs (filtered)');
|
||||
$('#Logs').jtable('load', {
|
||||
logfile: $('#logfile').val(),
|
||||
user: $('#searchlogs-user').val(),
|
||||
entry: $('#searchlogs-entry').val()
|
||||
});
|
||||
|
@ -1041,7 +1059,9 @@ $(document).ready(function () {
|
|||
$('#searchlogs-entry').val('');
|
||||
$( this ).dialog( 'close' );
|
||||
$('#Logs').find('.jtable-title-text').text('Logs');
|
||||
$('#Logs').jtable('load');
|
||||
$('#Logs').jtable('load', {
|
||||
logfile: $('#logfile').val()
|
||||
});
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -1060,6 +1080,7 @@ $(document).ready(function () {
|
|||
Ok: function() {
|
||||
$.get("logs.php?action=rotate");
|
||||
$( this ).dialog( "close" );
|
||||
$('#logfile').val('');
|
||||
$('#Logs').jtable('load');
|
||||
},
|
||||
Cancel: function() {
|
||||
|
@ -1084,6 +1105,7 @@ $(document).ready(function () {
|
|||
Ok: function() {
|
||||
$.get("logs.php?action=clear");
|
||||
$( this ).dialog( "close" );
|
||||
$('#logfile').val('');
|
||||
$('#Logs').jtable('load');
|
||||
},
|
||||
Cancel: function() {
|
||||
|
@ -1141,6 +1163,15 @@ $(document).ready(function () {
|
|||
}
|
||||
}
|
||||
});
|
||||
|
||||
$('#logfile').change(function () {
|
||||
$('#Logs').jtable('load', {
|
||||
logfile: $('#logfile').val(),
|
||||
user: $('#searchlogs-user').val(),
|
||||
entry: $('#searchlogs-entry').val()
|
||||
});
|
||||
});
|
||||
|
||||
<?php } ?>
|
||||
$('#MasterZones').jtable('load');
|
||||
$('#SlaveZones').jtable('load');
|
||||
|
|
13
logs.php
13
logs.php
|
@ -24,10 +24,21 @@ switch ($_GET['action']) {
|
|||
|
||||
case "list":
|
||||
global $logging;
|
||||
if ($logging !== TRUE)
|
||||
if ($logging !== TRUE) {
|
||||
jtable_respond(null, 'error', 'Logging is disabled');
|
||||
break;
|
||||
}
|
||||
|
||||
if(!empty($_POST['logfile'])) {
|
||||
if(preg_match('/^[0-9]{4}-[0-9]{2}-[0-9]{2}-[0-9]{6}\.json/',$_POST['logfile']) == 1) {
|
||||
$entries=json_decode(file_get_contents($logsdirectory . "/" . $_POST['logfile']),true);
|
||||
} else {
|
||||
jtable_respond(null, 'error', "Can't find log file");
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
$entries=getlogs();
|
||||
}
|
||||
|
||||
if(!empty($_POST['user'])) {
|
||||
$entries=array_filter($entries,
|
||||
|
|
16
rotate-logs.php
Normal file
16
rotate-logs.php
Normal file
|
@ -0,0 +1,16 @@
|
|||
<?php
|
||||
|
||||
include_once('includes/config.inc.php');
|
||||
include_once('includes/session.inc.php');
|
||||
include_once('includes/misc.inc.php');
|
||||
|
||||
if(php_sapi_name() !== 'cli') {
|
||||
echo "This script is intended to be run from the command line";
|
||||
} else {
|
||||
if($allowrotatelogs === TRUE) {
|
||||
$current_user['username']='<system>';
|
||||
rotatelogs();
|
||||
} else {
|
||||
jtable_respond(null, 'error', 'Invalid action');
|
||||
}
|
||||
}
|
Loading…
Add table
Reference in a new issue