2016-09-06 04:00:00 +00:00
< ? php
2022-02-16 04:08:28 +00:00
namespace Code\Module\Admin ;
2016-09-06 04:00:00 +00:00
2022-02-16 04:08:28 +00:00
use Code\Render\Theme ;
2022-02-12 20:43:29 +00:00
2021-12-02 23:02:31 +00:00
class Logs
{
/**
* @ brief POST handler for logs admin page .
*
*/
public function post ()
{
if ( x ( $_POST , 'page_logs' )) {
check_form_security_token_redirectOnErr ( '/admin/logs' , 'admin_logs' );
$logfile = (( x ( $_POST , 'logfile' )) ? notags ( trim ( $_POST [ 'logfile' ])) : '' );
$debugging = (( x ( $_POST , 'debugging' )) ? true : false );
$loglevel = (( x ( $_POST , 'loglevel' )) ? intval ( trim ( $_POST [ 'loglevel' ])) : 0 );
set_config ( 'system' , 'logfile' , $logfile );
set_config ( 'system' , 'debugging' , $debugging );
set_config ( 'system' , 'loglevel' , $loglevel );
}
info ( t ( 'Log settings updated.' ));
goaway ( z_root () . '/admin/logs' );
}
/**
* @ brief Logs admin page .
*
* @ return string
*/
public function get ()
{
$log_choices = array (
LOGGER_NORMAL => 'Normal' ,
LOGGER_TRACE => 'Trace' ,
LOGGER_DEBUG => 'Debug' ,
LOGGER_DATA => 'Data' ,
LOGGER_ALL => 'All'
);
2022-02-12 20:43:29 +00:00
$t = Theme :: get_template ( 'admin_logs.tpl' );
2021-12-02 23:02:31 +00:00
$f = get_config ( 'system' , 'logfile' );
$data = '' ;
if ( ! file_exists ( $f )) {
$data = t ( " Error trying to open <strong> $f </strong> log file. \r \n <br/>Check to see if file $f exist and is
2016-09-06 04:00:00 +00:00
readable . " );
2021-12-02 23:02:31 +00:00
} else {
$fp = fopen ( $f , 'r' );
if ( ! $fp ) {
$data = t ( " Couldn't open <strong> $f </strong> log file. \r \n <br/>Check to see if file $f is readable. " );
} else {
$fstat = fstat ( $fp );
$size = $fstat [ 'size' ];
if ( $size != 0 ) {
2021-12-03 03:01:39 +00:00
if ( $size > 5000000 || $size < 0 ) {
2021-12-02 23:02:31 +00:00
$size = 5000000 ;
2021-12-03 03:01:39 +00:00
}
2021-12-02 23:02:31 +00:00
$seek = fseek ( $fp , 0 - $size , SEEK_END );
if ( $seek === 0 ) {
$data = escape_tags ( fread ( $fp , $size ));
2021-12-03 03:01:39 +00:00
while ( ! feof ( $fp )) {
2021-12-02 23:02:31 +00:00
$data .= escape_tags ( fread ( $fp , 4096 ));
2021-12-03 03:01:39 +00:00
}
2021-12-02 23:02:31 +00:00
}
}
fclose ( $fp );
}
}
return replace_macros ( $t , array (
'$title' => t ( 'Administration' ),
'$page' => t ( 'Logs' ),
'$submit' => t ( 'Submit' ),
'$clear' => t ( 'Clear' ),
'$data' => $data ,
'$baseurl' => z_root (),
'$logname' => get_config ( 'system' , 'logfile' ),
// name, label, value, help string, extra data...
'$debugging' => array ( 'debugging' , t ( " Debugging " ), get_config ( 'system' , 'debugging' ), " " ),
'$logfile' => array ( 'logfile' , t ( " Log file " ), get_config ( 'system' , 'logfile' ), t ( " Must be writable by web server. Relative to your top-level webserver directory. " )),
'$loglevel' => array ( 'loglevel' , t ( " Log level " ), get_config ( 'system' , 'loglevel' ), " " , $log_choices ),
'$form_security_token' => get_form_security_token ( 'admin_logs' ),
));
}
2021-12-03 03:01:39 +00:00
}