178 lines
5.4 KiB
PHP
178 lines
5.4 KiB
PHP
<?php
|
|
|
|
if (!defined('WPVIVID_PLUGIN_DIR')){
|
|
die;
|
|
}
|
|
class WPvivid_Log
|
|
{
|
|
public $log_file;
|
|
public $log_file_handle;
|
|
|
|
public function __construct()
|
|
{
|
|
$this->log_file_handle=false;
|
|
}
|
|
|
|
public function CreateLogFile($file_name,$type,$describe)
|
|
{
|
|
if($type=='has_folder')
|
|
{
|
|
$this->log_file=$file_name;
|
|
}
|
|
else
|
|
{
|
|
$this->log_file=$this->GetSaveLogFolder().$file_name.'_log.txt';
|
|
}
|
|
if(file_exists($this->log_file))
|
|
{
|
|
@wp_delete_file( $this->log_file);
|
|
}
|
|
$this->log_file_handle = fopen($this->log_file, 'a');
|
|
$offset=get_option('gmt_offset');
|
|
$time =gmdate("Y-m-d H:i:s",time()+$offset*60*60);
|
|
$text='Log created: '.$time."\n";
|
|
$text.='Type: '.$describe."\n";
|
|
fwrite($this->log_file_handle,$text);
|
|
|
|
return $this->log_file;
|
|
}
|
|
|
|
public function OpenLogFile($file_name,$type='no_folder',$delete=0)
|
|
{
|
|
if($type=='has_folder')
|
|
{
|
|
$this->log_file=$file_name;
|
|
}
|
|
else
|
|
{
|
|
$this->log_file=$this->GetSaveLogFolder().$file_name.'_log.txt';
|
|
}
|
|
if($delete==1)
|
|
{
|
|
wp_delete_file( $this->log_file);
|
|
}
|
|
$this->log_file_handle = fopen($this->log_file, 'a');
|
|
|
|
return $this->log_file;
|
|
}
|
|
|
|
public function WriteLog($log,$type)
|
|
{
|
|
if ($this->log_file_handle)
|
|
{
|
|
$offset=get_option('gmt_offset');
|
|
$time =gmdate("Y-m-d H:i:s",time()+$offset*60*60);
|
|
$text='['.$time.']'.'['.$type.']'.$log."\n";
|
|
fwrite($this->log_file_handle,$text );
|
|
}
|
|
}
|
|
|
|
public function CloseFile()
|
|
{
|
|
if ($this->log_file_handle)
|
|
{
|
|
fclose($this->log_file_handle);
|
|
$this->log_file_handle=false;
|
|
}
|
|
}
|
|
|
|
public function GetSaveLogFolder()
|
|
{
|
|
include_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wpvivid-setting.php';
|
|
|
|
$options = WPvivid_Setting::get_option('wpvivid_common_setting');
|
|
|
|
if(!isset($options['log_save_location']))
|
|
{
|
|
//WPvivid_Setting::set_default_common_option();
|
|
$options['log_save_location']=WPVIVID_DEFAULT_LOG_DIR;
|
|
update_option('wpvivid_common_setting', $options, 'no');
|
|
|
|
$options = WPvivid_Setting::get_option('wpvivid_common_setting');
|
|
}
|
|
|
|
if(!is_dir(WP_CONTENT_DIR.DIRECTORY_SEPARATOR.$options['log_save_location']))
|
|
{
|
|
@mkdir(WP_CONTENT_DIR.DIRECTORY_SEPARATOR.$options['log_save_location'],0777,true);
|
|
//@fopen(WP_CONTENT_DIR.DIRECTORY_SEPARATOR.$options['log_save_location'].DIRECTORY_SEPARATOR.'index.html', 'x');
|
|
$tempfile=@fopen(WP_CONTENT_DIR.DIRECTORY_SEPARATOR.$options['log_save_location'].DIRECTORY_SEPARATOR.'.htaccess', 'x');
|
|
if($tempfile)
|
|
{
|
|
//$text="deny from all";
|
|
$text="<IfModule mod_rewrite.c>\r\nRewriteEngine On\r\nRewriteRule .* - [F,L]\r\n</IfModule>";
|
|
fwrite($tempfile,$text );
|
|
}
|
|
}
|
|
|
|
return WP_CONTENT_DIR.DIRECTORY_SEPARATOR.$options['log_save_location'].DIRECTORY_SEPARATOR;
|
|
}
|
|
|
|
public function WriteLogHander()
|
|
{
|
|
if ($this->log_file_handle)
|
|
{
|
|
global $wp_version;
|
|
global $wpdb;
|
|
|
|
$sapi_type=php_sapi_name();
|
|
if($sapi_type=='cgi-fcgi'||$sapi_type==' fpm-fcgi') {
|
|
$fcgi='On';
|
|
}
|
|
else {
|
|
$fcgi='Off';
|
|
}
|
|
|
|
$options=WPvivid_Setting::get_option('wpvivid_common_setting');
|
|
if(isset($options['max_execution_time'])) {
|
|
$max_execution_time=$options['max_execution_time'];
|
|
}
|
|
else {
|
|
$max_execution_time=WPVIVID_MAX_EXECUTION_TIME;
|
|
}
|
|
|
|
$log='server info fcgi:'.$fcgi.' max execution time: '.$max_execution_time.' wp version:'.$wp_version.' php version:'.phpversion().' db version:'.$wpdb->db_version().' php ini:safe_mode:'.ini_get('safe_mode').' ';
|
|
$log.='memory_limit:'.ini_get('memory_limit').' memory_get_usage:'.size_format(memory_get_usage(),2).' memory_get_peak_usage:'.size_format(memory_get_peak_usage(),2);
|
|
$log.=' extensions:';
|
|
$loaded_extensions = get_loaded_extensions();
|
|
if(!in_array('PDO', $loaded_extensions))
|
|
{
|
|
$log.='PDO not enabled ';
|
|
}
|
|
else
|
|
{
|
|
$log.='PDO enabled ';
|
|
}
|
|
if(!in_array('curl', $loaded_extensions))
|
|
{
|
|
$log.='curl not enabled ';
|
|
}
|
|
else
|
|
{
|
|
$log.='curl enabled ';
|
|
}
|
|
|
|
if(!in_array('zlib', $loaded_extensions)) {
|
|
$log .= 'zlib not enabled ';
|
|
}
|
|
else
|
|
{
|
|
$log.='zlib enabled ';
|
|
}
|
|
|
|
$log.=' ';
|
|
if(is_multisite())
|
|
{
|
|
$log.=' is_multisite:1';
|
|
}
|
|
else
|
|
{
|
|
$log.=' is_multisite:0';
|
|
}
|
|
|
|
$offset=get_option('gmt_offset');
|
|
$time =gmdate("Y-m-d H:i:s",time()+$offset*60*60);
|
|
$text='['.$time.']'.'[notice]'.$log."\n";
|
|
fwrite($this->log_file_handle,$text );
|
|
}
|
|
}
|
|
} |