首页 > 语言 > PHP > 正文

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

2024-05-05 00:05:18
字体:
来源:转载
供稿:网友

本文实例讲述了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教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选