服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

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

2019-09-08 11:30luyaran PHP教程

这篇文章主要介绍了PHP日志LOG类定义与用法,结合实例形式分析了日志log的具体定义及使用方法,涉及php文件读写、日期时间及字符串等相关操作技巧,需要的朋友可以参考下

本文实例讲述了PHP日志LOG类定义与用法。分享给大家供大家参考,具体如下:

<?php
/**
* PHP log 类 
*/
class Config{
  public static function getConfig (){
   return array(
      'LOG_FILE'=>'test.txt', 
      'LOG_LEVEL'=>75 //INFO
   );
  }
}
class Log{
  private $LogFile;
  private $logLevel;
  const DEBUG = 100;
  const INFO  = 75;
  const NOTICE = 50;
  const WARNING =25;
  const ERROR  = 10;
  const CRITICAL = 5;
  private function __construct(){
    $cfg = Config::getConfig();  
    $this->logLevel = isset($cfg['LOG_LEVEL']) ? $cfg['LOG_LEVEL']:LOG::INFO;
    if(!isset($cfg['LOG_FILE']) && strlen($cfg['LOG_FILE'])){
      throw new Exception('can\'t set file to empty');
    }
    $this->LogFile = @fopen($cfg['LOG_FILE'],'a+');
    if(!is_resource($this->LogFile)){
      throw new Exception('invalid file Stream');
    }
  }
  public static function getInstance(){
    static $obj;
    if(!isset($obj)){
      $obj = new Log();
    }
    return $obj;
  }
  public function LogMessage($msg, $logLevel = Log::INFO,$module = null){
    if($logLevel > $this->logLevel){
      return ;
    }
    date_default_timezone_set('Asia/shanghai');
    $time = strftime('%x %X',time());
    $msg = str_replace("\t",'',$msg);
    $msg = str_replace("\n",'',$msg);
    $strLogLevel = $this->levelToString($logLevel);
    if(isset($module)){
      $module = str_replace(array("\n","\t"),array("",""),$module);
    }
    $logLine = "$time\t$msg\t$strLogLevel\t$module\r\n";
    fwrite($this->LogFile,$logLine);
  }
  public function levelToString($logLevel){
     $ret = '[unknow]';
     switch ($logLevel){
        case LOG::DEBUG:
           $ret = 'LOG::DEBUG';
           break;
        case LOG::INFO:
           $ret = 'LOG::INFO';
           break;
        case LOG::NOTICE:
           $ret = 'LOG::NOTICE';
           break;
        case LOG::WARNING:
           $ret = 'LOG::WARNING';
           break;
        case LOG::ERROR:
           $ret = 'LOG::ERROR';
           break;
        case LOG::CRITICAL:
           $ret = 'LOG::CRITICAL';
           break;
     }
     return $ret;
  }
}
$logIns = LOG::getInstance();
//print_r($logIns);
$logIns->logMessage("test",LOG::INFO,'myTest');
?>

运行程序,在当前目录下生成test.txt文件内容如下(这里是运行3次的结果):

09/06/18  14:56:20 test LOG::INFO myTest
09/06/18  14:56:21 test LOG::INFO myTest
09/06/18  14:56:22 test LOG::INFO myTest

希望本文所述对大家PHP程序设计有所帮助。

延伸 · 阅读

精彩推荐
  • PHP教程PHP检查URL包含特定字符串实例方法

    PHP检查URL包含特定字符串实例方法

    在本篇文章里,小编给大家分享了使用PHP检查URL是否包含特定字符串的相关操作方法,有需要的朋友们学习下。...

    laozhang1802019-06-18
  • PHP教程PHP支付宝当面付2.0代码

    PHP支付宝当面付2.0代码

    这篇文章主要为大家详细介绍了PHP支付宝当面付2.0代码,支付宝条码支付功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    懒惰的胖猪4342019-07-11
  • PHP教程掌握PHP垃圾回收机制详解

    掌握PHP垃圾回收机制详解

    这篇文章主要介绍了PHP垃圾回收机制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...

    子钦加油2412019-06-01
  • PHP教程django中的ajax组件教程详解

    django中的ajax组件教程详解

    Ajax(Asynchronous Javascript And XML)翻译成英文就是“异步Javascript和XML”。这篇文章主要介绍了django中的ajax组件的教程 ,需要的朋友可以参考下...

    肖亚飞3492019-09-01
  • PHP教程使用PHPExcel导出Excel表

    使用PHPExcel导出Excel表

    这篇文章主要为大家详细介绍了使用PHPExcel导出Excel表,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    月之海的记忆4652019-09-07
  • PHP教程PHP PDOStatement::fetchColumn讲解

    PHP PDOStatement::fetchColumn讲解

    今天小编就为大家分享一篇关于PHP PDOStatement::fetchColumn讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧...

    php参考手册4442019-06-24
  • PHP教程php获取用户真实IP和防刷机制的实例代码

    php获取用户真实IP和防刷机制的实例代码

    这篇文章主要介绍了php获取用户真实IP和防刷机制,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下...

    冒雨ing3202019-08-16
  • PHP教程php微信公众号开发之微信企业付款给个人

    php微信公众号开发之微信企业付款给个人

    这篇文章主要为大家详细介绍了php微信公众号开发之微信企业付款给个人,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    lzssing3832019-09-03