<?php
namespace admin\systemlog\classes;
class Systemlog{
public function run( $arr=array() ){
global $_G;
if( $_G['setting']['systemlog_open'] > 0 ){
$systemlog_setting = unserialize($_G['setting']['systemlog_setting']);
if(!isset($arr["mark"]) || (isset($systemlog_setting[$arr["mark"]]) && $systemlog_setting[$arr["mark"]]["is_open"]!=1) ){
return;
}
$file=$arr["mark"] $log=$arr["content"];
$yearmonth = "dzz" $logdir = DZZ_ROOT.'./data/log/';
$logfile = $logdir.$yearmonth.'_'.$file.'.php';
$i=0;
if( file_exists($logfile)){
$fp=fopen($logfile, "r");
while(!feof($fp)) {
if($data=fread($fp,1024*1024*1)){
$num=substr_count($data,"\n");
$i+=$num;
}
}
fclose($fp);
}
if($i>=4000) {
$dir = opendir($logdir);
$length = strlen($file);
$maxid = $id = 0;
while($entry = readdir($dir)) {
if(strpos($entry, $yearmonth.'_'.$file) !== false) {
$id = intval(substr($entry, $length + 8, -4));
$id > $maxid && $maxid = $id;
}
}
closedir($dir);
$logfilebak = $logdir.$yearmonth.'_'.$file.'_'.($maxid + 1).'.php';
@rename($logfile, $logfilebak);
}
if($fp = @fopen($logfile, 'a')) {
@flock($fp, 2);
if(!is_array($log)) {
$log = array($log);
}
$cur_url = $_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
$from_url = $_SERVER['HTTP_REFERER'];
foreach($log as $tmp) {
$tmp=implode("\t", clearlogstring(array($_G['timestamp'],$_G['username'], $_G['groupid'], $_G['clientip'],$tmp,$cur_url,$from_url,$_SERVER['HTTP_USER_AGENT'],"uid=".$_G['uid']))) ;
fwrite($fp, "<?PHP exit;?>\t".str_replace(array('<?', '?>'), '', $tmp)."\n");
}
fclose($fp);
}
}
}
}