ÿØÿà JFIF ` ` ÿþ
Server : Apache System : Linux ruga7-004.fmcity.com 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64 User : tkt_travelbus ( 1137) PHP Version : 7.0.0p1 Disable Function : mysql_pconnect Directory : /tkt_travelbus/www/LibClass/ |
Upload File : |
<?php class Log { /** * 로그 메세지를 파일에 저장 * * @access static * @param $msg * @param $filenamePrefix(optional) * @param $dir(optional) * @param $fileLimitSize(optional) * @return bool */ public static function save($msg, $filenamePrefix='', $dir='', $fileLimitSize=10) { global $TO_MB; // 관리자용 query 로그는 별도 저장 if(substr($dir, 0, 6) == 'query/' && defined('__ADMIN__') ){ $dir = str_replace('query/', 'query_admin/', $dir); } // 저장할 디렉토리 if ( trim($dir)!='' ){ if ( substr($dir, 0, 1) == DS ){ $dir = substr($dir, 1); } if ( substr($dir, -1) != DS ){ $dir = $dir . DS; } } $logRoot = DIR_LOG; if ( trim($logRoot)!='' ){ if ( substr($logRoot, -1) != DS ){ $logRoot = $logRoot . DS; } }else{ return FALSE; } // 저장할 디렉토리 없으면 생성 $logDir = $logRoot . $dir; if (!is_dir($logDir)) { if ( !@mkdir($logDir, 0707, TRUE) ){ return FALSE; } @chmod($logDir, 0707); } // 저장할 내용이 배열이나 객체일경우 풀어서 문자열로 바꾼다. if ( is_array($msg) || is_object($msg) ){ $msg = print_r($msg, true); } // 회원아이디 $user_id = $TO_MB['mb_id']; // 저장할 내용 $logMSG = '['.date('H:i:s').']'. "\t" . $user_id . "\t" . $_SERVER['REMOTE_ADDR']; $logMSG .= PHP_EOL . $msg . PHP_EOL; // 파일명을 따로 지정하지 않으면 디폴트 파일명으로 저장 if (trim($filenamePrefix) == '') { $filename = date('Ymd'); }else { $filename = $filenamePrefix."_".date('Ymd'); } // 파일의 크기가 $fileLimitSize MByte를 넘으면 새 파일을 만들어 저장 $count = 0; while(1) { $LogFile = $logDir . $filename.'_'.$count.'.log'; if (file_exists($LogFile)) { if (filesize($LogFile) >= (1048576 * $fileLimitSize)) { $count++; }else{ break; } }else{ break; } } // 파일에 저장 $fo = new File($LogFile); if ( !$fo->write( $logMSG, 'a+') ){ //echo $fo->errMsg; return false; } // 파일 권한 변경 if ( $fo->exists() ) { chmod($LogFile, 0606); } return true; } } ?>