101 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			101 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace Zotlabs\Module\Admin;
 | |
| 
 | |
| 
 | |
| class Logs {
 | |
| 
 | |
| 
 | |
| 	
 | |
| 	/**
 | |
| 	 * @brief POST handler for logs admin page.
 | |
| 	 *
 | |
| 	 */
 | |
| 
 | |
| 	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
 | |
| 	 */
 | |
| 
 | |
| 	function get() {
 | |
| 	
 | |
| 		$log_choices = Array(
 | |
| 			LOGGER_NORMAL => 'Normal',
 | |
| 			LOGGER_TRACE => 'Trace',
 | |
| 			LOGGER_DEBUG => 'Debug',
 | |
| 			LOGGER_DATA => 'Data',
 | |
| 			LOGGER_ALL => 'All'
 | |
| 		);
 | |
| 	
 | |
| 		$t = get_markup_template('admin_logs.tpl');
 | |
| 	
 | |
| 		$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 
 | |
| 	readable.");
 | |
| 		}
 | |
| 		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)
 | |
| 				{
 | |
| 					if($size > 5000000 || $size < 0)
 | |
| 						$size = 5000000;
 | |
| 					$seek = fseek($fp,0-$size,SEEK_END);
 | |
| 					if($seek === 0) {
 | |
| 						$data = escape_tags(fread($fp,$size));
 | |
| 						while(! feof($fp))
 | |
| 							$data .= escape_tags(fread($fp,4096));
 | |
| 					}
 | |
| 				}
 | |
| 				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'),
 | |
| 		));
 | |
| 	}
 | |
| 	
 | |
| 
 | |
| 
 | |
| } |