php常用日志记录方法

php常用的一个日志记录、调试函数,记录日志到本地方便接口的调试:


<?php
final class tool_log
{
    public static function errorLog($info,$unlink=false,$log_file_name='',$log_dir='/日志目录/')
    {
        is_dir(RPC_DIR.$log_dir) || @mkdir(RPC_DIR.$log_dir);
        $time = date('Y-m-d H:i:s',time());
        $data = is_array($info)?json_encode($info,JSON_UNESCAPED_UNICODE):$info;
        $file_name = $log_file_name ? $log_file_name.'.log' :date('Ymd').'.log';
        if ($unlink){
            @unlink(RPC_DIR.$log_dir.$file_name);
        }
        $backtrace = debug_backtrace();
        $backtrace_line = array_shift($backtrace); // 哪一行调用的log方法
        $backtrace_call = array_shift($backtrace); // 谁调用的log方法
        $file = substr($backtrace_line['file'], strlen($_SERVER['DOCUMENT_ROOT']));
        $line = $backtrace_line['line'];
        $class = isset($backtrace_call['class']) ? $backtrace_call['class'] : '';
        $type = isset($backtrace_call['type']) ? $backtrace_call['type'] : '';
        $func = $backtrace_call['function'];
        @file_put_contents(RPC_DIR.$log_dir.$file_name, "$time $file:$line $class$type$func: $data\n". PHP_EOL, FILE_APPEND);
    }
}
//tool_log::errorLog(记录的内容,是否先删除,'文件名称',存放目录);


评论/留言