本文实例讲述了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文件操作总结》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
本文向大家介绍PHP购物车类Cart.class.php定义与用法示例,包括了PHP购物车类Cart.class.php定义与用法示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP购物车类Cart.class.php定义与用法。分享给大家供大家参考,具体如下: 之前的开发人员使用了JS的技术开发了一套前台购物车(删除添加什么的都使用JS),但是浏览器兼容不好, 今天终于出问题了,
本文向大家介绍超实用的android自定义log日志输出工具类,包括了超实用的android自定义log日志输出工具类的使用技巧和注意事项,需要的朋友参考一下 android自定义log日志输出工具,该工具类具有以下优点: 1 在LogUtlis方法的第一个参数中填this可以输出当前类的名称,特别是在匿名内部类使用也可以输出当前类名。 如 : LogUtils.i(this,”这是一个实用的日志
DoitPHP所提供的Log类主要用于日志处理。当主配置文件中开启日记记录功能时(日记功能开启,Debug调试功能关闭),若程序运行异常时会在logs目录内生成log日志文件,这样便于监控程序运行。Log类只提供两个类方法write()和show()。 类方法使用说明: 1、write($message, $level = 'Error', $logFileName = null) 日志写入操作
本文向大家介绍php实现的pdo公共类定义与用法示例,包括了php实现的pdo公共类定义与用法示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php实现的pdo公共类定义与用法。分享给大家供大家参考,具体如下: db.class.php : 实例: 更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP基于pdo操作数据库技巧总结》、《php+Oracle数据库程序设计技巧总结》、
本文向大家介绍PHP基于redis计数器类定义与用法示例,包括了PHP基于redis计数器类定义与用法示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP基于redis计数器类定义与用法。分享给大家供大家参考,具体如下: Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 这里使用其incr(自增
本文向大家介绍PHP策略模式定义与用法示例,包括了PHP策略模式定义与用法示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP策略模式定义与用法。分享给大家供大家参考,具体如下: 概述 策略模式属于对象的行为模式。其用意是针对一组算法,将每个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化 UML图 策略模式中主要角色