您现在的位置是:网站首页>PHP技术PHP技术

TP5自定义日志记录到文件方法

草谷2019-03-31PHP技术

简介通过自定义日志记录到文件,可以方便与线上生产环境中对报错等信息的记录,便于调试。也可以用于调试类似于支付回调等异步请求中返回结果

话不多说,直接上代码

/**
 * [payLog 日志log]
 * @param  [type] $mark        [日志的备注,显示在日志文件中]
 * @param  [type] $log_content [日志内容,支持数组或字符串,自动转json格式]
 * @param  string $keyp        [日志名,默认为当前时间命名]
 * @return [type]              [description]
 */
function mylog($mark, $log_content, $keyp = "") {
    $max_size = 30000000;
    if ($keyp == "") {
        $log_filename = RUNTIME_PATH . '/tlogs/' . date('Ym-d') . ".log";
    } else {
        $log_filename = RUNTIME_PATH . '/tlogs/' . $keyp . ".log";
    }

    if (file_exists($log_filename) && (abs(filesize($log_filename)) > $max_size)) {
        rename($log_filename, dirname($log_filename) . DS . date('Ym-d-His') . $keyp . ".log");
    }

    $t = microtime(true);
    $micro = sprintf("%06d", ($t - floor($t)) * 1000000);
    $d = new \DateTime (date('Y-m-d H:i:s.' . $micro, $t));
    if(is_array($log_content)){
        $log_content = JSONReturn($log_content);
    }

    file_put_contents($log_filename, '   ' . $d->format('Y-m-d H:i:s u') . " key:" . $mark . "\r\n" . $log_content . "\r\n------------------------ --------------------------\r\n", FILE_APPEND);
}


用于调试服务端三方接口的异步回调会比较方便。

很赞哦! (0)

文章评论