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

时间:2021-05-26

本文实例讲述了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:20testLOG::INFOmyTest
09/06/18 14:56:21testLOG::INFOmyTest
09/06/18 14:56:22testLOG::INFOmyTest

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP日志操作技巧总结》、《php文件操作总结》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

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

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章