A PHP log class for debuging
admin
2023-06-27 10:03:51
0次

分享一个我自己用的在 WordPress 开发中用得到的一个调试日志类。

dir = dirname($main_file).DIRECTORY_SEPARATOR.'debug'.DIRECTORY_SEPARATOR;
            $file_name = 'debug_'.md5($main_file).'.log';
            $this->debug_file_name = (function_exists('apply_filters'))?apply_filters('cwp_debug_log_file_name',$file_name).'.log':$file_name.'.log';
            $this->f_path = $this->dir.$this->debug_file_name;
            $this->check_log_file();

         }
        /**
         * adding log item
         * @param string $text : adding content
         */
        public function  add($text) {

            date_default_timezone_set('Asia/Shanghai');
            if(is_array($text)||is_obeject($text)){
                $text = json_encode($text);
            }
            $fp = fopen( $this->f_path,"a");
            flock($fp, LOCK_EX) ;
            fwrite($fp,"".date("Y-m-d H:i:s",time())."\n".$text."\n\n");
            flock($fp, LOCK_UN);
            fclose($fp);
            //return true;
            //
        }

        /**
         * checking the log file and path.
         * @return null
         */
        private function check_log_file(){

            $is_dir = is_dir($this->dir);
            $is_file = file_exists($this->f_path);
            if($is_dir && $is_file) return;
            if(!$is_dir||!$is_file){
                if(!$is_dir){
                    $md = mkdir($this->dir,0777,true);
                }
                if(!$is_file){
                    $fp = fopen( $this->f_path,"a");  
                    fclose($fp); 
                }
            }

        }
    }/*//CLASS*/
}
/*ALL DONE.*/
?>

以 WordPress 插件为例的用例:
在插件主文件的适当位置加入(假如上述代码放置在class-coolwp-debug-log.php文件中):

$this->is_debug = true;

if($this->is_debug){
    require_once( plugin_dir_path(__FILE__).'classes/class-coolwp-debug-log.php');

    $this->Log = new CoolWP_com_Log();
}

如果在插件主文件中将__FILE__定义为常量 SOMEONE_THIS,那么,可以将SOMEONE_THIS 作为参数传给CoolWP_com_Log(),例如:

$this->Log = new CoolWP_com_Log(SOMEONE_THIS);

传不传参数的区别是日志文件的位置不同,如果不传参数,日志文件位于class-coolwp-debug-log.php所在目录下的debug目录下;如果传递了SOMEONE_THIS参数,那么,日志文件位于插件主目录下的debug目录下。日志文件的文件名称为debug_*******log。

日志条目默认采用北京时间。

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...