`
student_lp
  • 浏览: 437061 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

php工具类之【自定义日志记录类】

阅读更多
<?php
if(!defined("DIR_ROOT")){
	define("DIR_ROOT", dirname(dirname(__FILE__)));
}
define('LEVEL_FATAL', 0);
define('LEVEL_ERROR', 1);
define('LEVEL_WARN', 2);
define('LEVEL_INFO', 3);
define('LEVEL_DEBUG', 4);
/**
 * 记录操作过程中的日志信息
 * @version 1.0 20140725
 */
class Logger {
    static $LOG_LEVEL_NAMES = array(
        'FATAL', 'ERROR', 'WARN', 'INFO', 'DEBUG'
    );

    private $level = LEVEL_DEBUG;
    private $rootDir = DIR_ROOT;

    static function getInstance() {
        return new Logger;
    }
    /**
     * 设置最小的log记录级别,小于该级别的log日志输出将被忽略掉
     * @param int $lvl -- 最小的log日志输出级别
     * @throws Exception
     */
    function setLogLevel($lvl) {
        if($lvl >= count(Logger::$LOG_LEVEL_NAMES)  || $lvl < 0) {
            throw new Exception('invalid log level:' . $lvl);
        }
        $this->level = $lvl;
    }
    //###################输出各个级别的日志信息---start==============
    function debug($message, $name = 'root') {
        $this->_log(LEVEL_DEBUG, $message, $name);
    }
    function info($message, $name = 'root') {
        $this->_log(LEVEL_INFO, $message, $name);
    }
    function warn($message, $name = 'root') {
        $this->_log(LEVEL_WARN, $message, $name);
    }
    function error($message, $name = 'root') {
        $this->_log(LEVEL_ERROR, $message, $name);
    }
    function fatal($message, $name = 'root') {
        $this->_log(LEVEL_FATAL, $message, $name);
    }
    //###################输出各个级别的日志信息---end==============
 	/**
 	 * 记录log日志信息
 	 * @param unknown_type $level
 	 * @param unknown_type $message
 	 * @param unknown_type $name
 	 */
 	private function _log($level, $message, $name) {
        if($level > $this->level) {
            return;
        }
    
        $log_file_path = $this->rootDir."/logs/".$name.'.log';
        $log_level_name = Logger::$LOG_LEVEL_NAMES[$this->level];
        $content = date('Y-m-d H:i:s') . ' [' . $log_level_name . '] ' . $message . "\n";
        file_put_contents($log_file_path, $content, FILE_APPEND);
    }
}
//
//$logger = Logger::getInstance();
//$logger->debug('this is my first log', 'test');

 

分享到:
评论

相关推荐

    log4php日志记录操作类

    总的来说,log4php为PHP开发者提供了强大而灵活的日志记录工具,通过合理的配置和使用,可以帮助我们更好地管理和理解应用程序的运行情况。通过深入研究和实践,我们可以充分利用log4php的功能,提升开发效率和问题...

    swagger接口日志生成工具

    在这款工具中,"工具类"是核心部分,它包含了处理日志记录的各种函数和方法。这些方法通常包括初始化日志系统、记录接口请求和响应信息、错误处理以及日志格式化等功能。开发者可以通过调用这些方法,在API执行过程...

    PHP上传视频文件图片工具类

    在PHP开发中,上传视频、图片以及文件是常见的需求,特别是在...记得在生产环境中,安全永远是首要考虑的因素,例如要防止文件注入攻击,限制上传文件的大小和类型,以及做好日志记录,以便追踪和解决可能出现的问题。

    php的其他工具类.zip

    本资源“php的其他工具类.zip”包含了多个实用的工具类,涵盖了系统负载监控、日志记录、内存管理以及浏览器变量输出等多个方面。下面,我们将详细探讨这些知识点。 1. **系统负载监控**: 在服务器环境中,了解...

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

    实际项目中,可以将这个日志操作类作为一个工具类,方便在整个项目中统一管理和记录日志。 总的来说,这个PHP实现的debug-log日志操作类为开发者提供了一个灵活且强大的日志解决方案,能够帮助他们更好地管理和分析...

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

    总的来说,这个PHP实现的debug-log日志操作类是PHP开发中一个实用的工具,它使得日志记录更加规范、高效,有助于提升代码的可维护性和故障排查能力。无论是小型项目还是大型应用,这样的类库都能为开发者带来便利。...

    PHP的小百科,可以当做日志记录

    **PHP小百科——轻量级的日志记录与知识管理** PHP是一种广泛使用的开源脚本语言,尤其在Web开发领域有着深厚的根基。在这个“PHP的小百科”项目中,它被巧妙地利用来创建一个无需数据库支持的轻量级知识库或日志...

    miniLog php log日志类

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

    PHP多功能工具箱源码_it工具箱源码_itselfy1d_工具箱源码php_工具箱源码php_php加密_

    5. **日志记录**:为了便于调试和监控,工具箱可能提供日志记录功能,使用error_log、file_put_contents或者自定义的日志类。 6. **前端界面**:虽然描述中提到前端界面未做美化,但通常工具箱会提供基础的HTML、...

    codeigniter日志类库

    你可以设定日志文件的路径,启用或禁用日志记录,以及设置默认的日志级别。例如: ```php $config['log_path'] = APPPATH . 'logs/'; $config['log_file_extension'] = 'php'; $config['log_file_permissions'] = ...

    PHP常用类集合

    以上只是PHP常用类的一部分,实际的“PHP常用类集合”可能还包括其他如模板引擎、加密解密、模板引擎、日志记录、会话管理等类别。这个集合为开发者提供了一个方便的工具箱,可以快速找到解决特定问题的代码片段,...

    PHP实例开发源码—PhpLog 程序调试追踪功能实现源码.zip

    这个“PHP实例开发源码—PhpLog 程序调试追踪功能实现源码.zip”文件提供了关于如何在PHP项目中实现自定义日志记录功能的示例代码。下面我们将详细探讨这一主题。 首先,`PhpLog` 是一个自定义的日志记录类,通常...

    PHP实例开发源码—LOGA 4.X 日志系统 php版utf-8.zip

    - **格式化输出**:可以自定义日志输出的格式,包括时间戳、级别、消息等内容。 - **日志处理器**:支持多种日志处理器,如写入文件、发送邮件、推送至远程服务器等,可根据项目需求选择合适的方式。 - **性能优化**...

    PHP自定义架构

    8. **工具集**:自定义架构通常会包含一系列实用工具类或函数,如字符串处理、日期时间操作、数组操作等,以简化常见的编程任务。 9. **配置管理**:配置管理允许开发者根据环境(如开发、测试、生产)调整应用设置...

    天翼开放平台自定义短信验证码封装类

    总的来说,"天翼开放平台自定义短信验证码封装类"是一个强大的工具,它结合了天翼开放平台的短信服务和PHP的面向对象编程思想,为开发者提供了一站式的解决方案,使得短信验证功能的集成变得更加便捷和安全。

    基于PHP的阿西php多用户日志系统.zip

    【标题】"基于PHP的阿西php多用户日志系统"是一个专为PHP环境设计的日志管理系统,旨在帮助开发者和运维人员实现对多个用户账户的日志记录和管理。该系统可能包含用户登录、权限控制、日志查看、日志搜索等功能,...

    xser_exception_handler -- xser php fr v0.1 自定义捕获异常信息

    该框架的核心思想是创建一个自定义的异常处理器类,它继承自PHP的`Exception`类或`Throwable`接口,从而可以覆盖默认的异常处理流程。当异常发生时,这个处理器将接手并执行特定的操作,例如记录错误日志、发送错误...

    php封装的pdo数据库操作工具类与用法示例

    除了捕获异常、返回错误信息外,还可能通过日志记录、返回特定的错误码等方式来增强工具类的健壮性和易用性。 9. 使用技巧: 封装类的设计往往会考虑易用性和灵活性,例如提供灵活的配置参数、统一的错误处理机制、...

    基于PHP的LOGA日志系统升级程序v5.3.2至v5.3.3源码.zip

    此外,可能引入了自定义日志格式或者支持JSON格式的日志,便于后续的数据分析。 3. **接口兼容性**:为了保持与旧版本的兼容性,LOGA日志系统在升级时会确保核心API的稳定,同时可能添加新的API以满足新的需求,...

    基于PHP面向对象的自定义MVC框架高级项目开发12天视频

    - 例如权限验证、日志记录等功能。 3. **单元测试(Unit Testing)** - 使用PHPUnit等工具编写测试用例。 - 测试模型、控制器等各个组件的功能正确性。 4. **性能优化** - 缓存机制:使用文件缓存、Memcached等...

Global site tag (gtag.js) - Google Analytics