PHP日志类

PHP日志类设计
[b]PHP日志类:
以 年月日 目录级生成日志文件
可设置单个日志文件的大小 日志类型等[/b]

<?php
/**
* 日志类
*
* @package log
* @version $Id$
*/
class Log
{
/**
* 单个日志文件大小限制
*
* @var int 字节数
*/
private static $i_log_size = 5242880; // 1024 * 1024 * 5 = 5M

/**
* 设置单个日志文件大小限制
*
* @param int $i_size 字节数
*/
public static function set_size($i_size)
{
if( is_numeric($i_size) ){
self::$i_log_size = $i_size;
}
}

/**
* 写日志
*
* @param string $s_message 日志信息
* @param string $s_type 日志类型
*/
public static function write($s_message, $s_type = 'log')
{
// 检查日志目录是否可写
if ( !file_exists(LOG_PATH) ) {
@mkdir(LOG_PATH);
}
chmod(LOG_PATH,0777);
if (!is_writable(LOG_PATH)) exit('LOG_PATH is not writeable !');
$s_now_time = date('[Y-m-d H:i:s]');
$s_now_day = date('Y_m_d');
// 根据类型设置日志目标位置
$s_target = LOG_PATH;
switch($s_type)
{
case 'debug':
$s_target .= 'Out_' . $s_now_day . '.log';
break;
case 'error':
$s_target .= 'Err_' . $s_now_day . '.log';
break;
case 'log':
$s_target .= 'Log_' . $s_now_day . '.log';
break;
default:
$s_target .= 'Log_' . $s_now_day . '.log';
break;
}

//检测日志文件大小, 超过配置大小则重命名
if (file_exists($s_target) && self::$i_log_size <= filesize($s_target)) {
$s_file_name = substr(basename($s_target), 0, strrpos(basename($s_target), '.log')). '_' . time() . '.log';
rename($s_target, dirname($s_target) . DS . $s_file_name);
}
clearstatcache();
// 写日志, 返回成功与否
return error_log("$s_now_time $s_message\n", 3, $s_target);
}
}

[b][color=blue]使用日志类:[/color][/b]
<?php
define('DS', DIRECTORY_SEPARATOR); // 设置目录分隔符
define('LOG_PATH',dirname(__FILE__).DS.'log'.DS); // 日志文件目录
require './Log.class.php'; // 导入日志类文件
Log::set_size(1024*1024*10); // 设置单个文件大小
Log::write('Error: aaaa','log'); // 写日志


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值