【php开源代码栏目提醒】:文章导读:在新的一年中,各位网友都进入紧张的学习或是工作阶段。网学会员整理了php开源代码-Log.class.php的相关内容供大家参考,祝大家在新的一年里工作和学习顺利!
<?php
// +----------------------------------------------------------------------
// | Think
PHP // +----------------------------------------------------------------------
// | Copyright (c) 2008 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <liu21st@gmail.com>
// +----------------------------------------------------------------------
// $Id$
/**
+------------------------------------------------------------------------------
* 鏃ュ織澶勭悊绫?
* 鏀寔涓嬮潰鐨勬棩蹇楃被鍨?
* WEB_LOG_DEBUG 璋冭瘯淇℃伅
* WEB_LOG_ERROR 閿欒淇℃伅
* SQL_LOG_DEBUG SQL璋冭瘯
* 鍒嗗埆瀵硅薄鐨勯粯璁ゆ棩蹇楁枃浠朵负
* 璋冭瘯鏃ュ織鏂囦欢 systemOut.log
* 閿欒鏃ュ織鏂囦欢 systemErr.log
* SQL鏃ュ織鏂囦欢 systemSql.log
+------------------------------------------------------------------------------
* @category Think
* @package Think
* @subpackage Util
* @author liu21st <liu21st@gmail.com>
* @version $Id$
+------------------------------------------------------------------------------
*/
class Log extends Base
{//绫诲畾涔夊紑濮?
static $log = array();
/**
+----------------------------------------------------------
* 璁板綍鏃ュ織
+----------------------------------------------------------
* @static
* @access public
+----------------------------------------------------------
* @param string $message 鏃ュ織淇℃伅
* @param string $type 鏃ュ織绫诲瀷
+----------------------------------------------------------
* @throws ThinkExecption
+----------------------------------------------------------
*/
static function record($message,$type=WEB_LOG_ERROR) {
$now = date('[ y-m-d H:i:s ]');
self::$log[$type][] = "\n$now\n$message";
}
/**
+----------------------------------------------------------
* 鏃ュ織淇濆瓨
+----------------------------------------------------------
* @static
* @access public
+----------------------------------------------------------
* @param string $message 鏃ュ織淇℃伅
* @param string $type 鏃ュ織绫诲瀷
* @param string $file 鍐欏叆鏂囦欢 榛樿鍙栧畾涔夋棩蹇楁枃浠?
+----------------------------------------------------------
* @throws ThinkExecption
+----------------------------------------------------------
*/
static function save()
{
$day = date('y_m_d');
$_type = array(
WEB_LOG_DEBUG => realpath(LOG_PATH).'/'.$day."_systemOut.log",
SQL_LOG_DEBUG => realpath(LOG_PATH).'/'.$day."_systemSql.log",
WEB_LOG_ERROR => realpath(LOG_PATH).'/'.$day."_systemErr.log",
);
if(!is_writable(LOG_PATH)){
halt(L('_FILE_NOT_WRITEABLE_').':'.LOG_PATH);
}
foreach (self::$log as $type=>$logs){
//妫娴嬫棩蹇楁枃浠跺ぇ灏忥紝瓒呰繃閰嶇疆澶у皬鍒欏浠芥棩蹇楁枃浠堕噸鏂扮敓鎴?
$destination = $_type[$type];
if(file_exists($destination) && floor(C('LOG_FILE_SIZE')) <= filesize($destination) ){
rename($destination,dirname($destination).'/'.time().'-'.basename($destination));
}
error_log(implode('',$logs), FILE_LOG,$destination );
}
clearstatcache();
}
/**
+----------------------------------------------------------
* 鏃ュ織鐩存帴鍐欏叆
+----------------------------------------------------------
* @static
* @access public
+----------------------------------------------------------
* @param string $message 鏃ュ織淇℃伅
* @param string $type 鏃ュ織绫诲瀷
* @param string $file 鍐欏叆鏂囦欢 榛樿鍙栧畾涔夋棩蹇楁枃浠?
+----------------------------------------------------------
* @throws ThinkExecption
+----------------------------------------------------------
*/
static function write($message,$type=WEB_LOG_ERROR,$file='')
{
$now = date('[ y-m-d H:i:s ]');
switch($type){
case WEB_LOG_DEBUG:
$logType ='[璋冭瘯]';
$destination = $file == ''? LOG_PATH.date('y_m_d')."_systemOut.log" : $file;
break;
case SQL_LOG_DEBUG:
// 璋冭瘯SQL璁板綍
$logType ='[SQL]';
$destination = $file == ''? LOG_PATH.date('y_m_d')."_systemS