`
长虫的梅子
  • 浏览: 43298 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

PHP日志类

    博客分类:
  • PHP
阅读更多
PHP日志类:
以 年月日 目录级生成日志文件
可设置单个日志文件的大小 日志类型等


<?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);
    }
}

使用日志类:
<?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');                   // 写日志





分享到:
评论
1 楼 wenshu 2010-11-13  
不错,我自己用过KLogger也很不错,修改了一下,源码在这:里。http://www.liuzhongshu.com/code/single-file-php-stat.html

相关推荐

    简单的php日志类.zipzip

    介绍一个简单的php日志类,news目录为当前php文档根目录下子目录。 在生产环境中,日志是查找问题来源的重要依据。应用程序运行时的产生的各种信息,都应该通过日志类库来进行记录。

    一个能用很久的php日志类

    本篇文章将详细讲解一个长期可用的PHP日志类的实现和应用,以及它如何帮助我们优化和维护项目。 首先,我们要理解日志的基本概念。日志是指在程序运行过程中记录下来的信息,这些信息可以是错误信息、警告信息、...

    一个能用很久的php日志类.zipzip

    介绍一个能用很久的php日志类,日志所能提供的功能是多种多样的,包括记录程序运行时产生的错误信息、状态信息、调试信息和执行时间信息等。需要的朋友可以下载参考,也可以发送更好的代码到我们的平台上来学习交流

    PHP 日志类

    自己写的一个日志类,将错误日志打印到txt文档中,便于开发过程中查看错误信息

    miniLog php log日志类

    迷你PHP日志类(miniLog)是一款专门为PHP开发者设计的日志记录工具,旨在提供一个简单、快速且易于使用的日志解决方案。它具有以下显著特点: 1. **配置简便**:miniLog强调“少配置或零配置”,这意味着在大多数...

    php日志操作类

    php实现日志处理类 功能: 1.自定义日志根目录及日志文件名称。 2.使用日期时间格式自定义日志目录。 3.自动创建不存在的日志目录。 4.记录不同分类的日志,例如信息日志,警告日志,错误日志。 5.可自定义日志配置...

    php 日志封装类

    php代码 ,一个简易的日志封装类,可以用作调试可简单日志记录

    php利用单例模式实现日志处理类库.zipzip

    对于现在的应用程序来说,日志的重要性是不言而喻的。很难想象没有任何日志记录功能的应用程序运行在生产环境中。日志所能提供的功能是多种多样的,包括记录程序运行时产生的错误信息、状态信息、调试信息和执行时间...

    eClog:一个PHP日志类-开源

    eClog是PHP日志类,提供了记录文件(默认),控制台,数据库,邮件,error_log和syslog的功能。 支持多个并行处理程序,并能够触发PHP错误。 关于stomp,mqseries和snmp处理程序的开发正在进行中。

    php实现的debug-log日志操作类

    因此,自定义日志类成为了解决这个问题的有效途径。 这个"php实现的debug-log日志操作类"可能包含以下核心功能: 1. **配置管理**:类可能允许设置日志级别(如DEBUG、INFO、WARNING、ERROR),日志存储路径,以及...

    PHP日志系统plog(PHP).zip

    这是博客“无网不剩”的博主开发的一款日志系统。...plog是一款轻量级,易定制,易使用,易扩展的php日志系统。可以很方便地添加日志处理工具、自定义输出格式、自定义日志类型等等。” 标签:plog(PHP)

    PHP传日志模块

    本文将详细讨论“PHP传日志模块”的相关知识点,包括日志的上传、日志列表展示、日志读取以及日志删除这四个核心功能。 首先,日志上传是系统监控和故障排查的关键部分。在PHP中,可以通过file_put_contents函数来...

    mongodb driver 集成mongo和mongodb扩展 log.php 发送日志类

    "log.php"是一个发送日志类,它可能是为了记录应用程序与MongoDB交互时的事件、错误或调试信息。在PHP中,创建这样的类可以提供一个统一的日志记录机制,帮助开发者追踪程序运行情况,提高问题排查效率。此类通常会...

    log4php日志记录操作类

    **log4php日志记录操作类** 在PHP开发中,日志记录是不可或缺的一部分,它帮助开发者追踪程序运行状态,定位错误,以及进行性能分析。Apache的log4php库为PHP提供了一套强大的日志记录解决方案,其设计灵感来源于...

    PHP日志LOG类定义与用法示例

    本文将详细介绍一个自定义的PHP日志类(LOG类)的定义和使用方法,以便于理解如何在PHP项目中实现日志记录功能。 首先,我们看到一个名为`Config`的辅助类,它的作用是存储日志相关的配置信息。`getConfig`静态方法...

    类的封装--日志

    一个简单的日志封装类,简单易懂,很容易上手,几行代码,共分享

    L3092_精通VisualCWeb开发道\L3092_精通Visual C# 2005语言基础、数据库系统开发、Web开发道

    LogClass.php 日志类 LogManager.php 日志管理模块主菜单 LogView.php 显示日志模块 PublicMessageClass.php 公告类 PublicMessageManager.php 公告管理模块主菜单 PublicMessageAdd.php 添加公告...

    PHP实现工厂模式设计日志记录器

    `FileLog`类实现了将日志写入文件的功能,而`DatabaseLog`类则负责将日志存储到数据库中。这两个类都实现了`Logger`接口,因此它们都可以被工厂模式的实例化过程所使用。 `LogFactory.php`是抽象工厂,它定义了一个...

    SeasLog一个高效快速稳定的PHP日志扩展

    总的来说,SeasLog作为一个强大的PHP日志扩展,能够满足开发过程中对日志记录的各种需求,提供高效、稳定且灵活的解决方案。对于大型PHP项目或高并发环境,使用SeasLog能够大大提高开发效率,提升系统稳定性,并简化...

    php实现的debug-log日志操作类.zipzip

    1. **日志级别**:日志类可能会定义不同的日志级别,如DEBUG、INFO、WARNING、ERROR等,允许开发者根据需要选择记录不同级别的信息。 2. **格式化输出**:类库可能提供了格式化日志的方法,可以按照预设的模板或者...

Global site tag (gtag.js) - Google Analytics