前置日志文件的最佳方法

时间:2019-12-17 19:12:46

标签: php

我一直在寻找一种更快的方法来完成日志文件的添加。以下是我所知道的当前两种方法。我还尝试了正常添加文件,然后反向读取文件以显示,但是(未经测试)我认为,一旦文件达到合理大小,这将需要更长的时间。挂起日志文件最快的方法是什么?

$start1 = microtime(true);
log1();
$end1 = microtime(true);
$start2 = microtime(true);
// log2();
$end2 = microtime(true);

$t1 = $end1-$start1;
$t2 = $end2-$start2;

function log1(){
    $stamp = date("Y-m-d @ h:i:sa");
    $data = ($stamp." this has been a test of 1");
    $data .= file_get_contents('./test.log');
    file_put_contents('./test.log', "\r\n\r\n".$data);
}

编辑:更新了log2()

function log2(){
    $stamp = date("Y-m-d @ h:i:sa");
    $write = $stamp.'this has been a test of 2'.PHP_EOL;
    $file = './test.log';
    $handler = fopen($file, 'r+');
    $len = strlen($write);
    $final_len = filesize($file)+$len;
    $cache_old = fread($handler, $len);
    rewind($handler);
    $i=1;
    while(ftell($handler) < $final_len){
        fwrite($handler, $write);
        $write = $cache_old;
        $cache_old = fread($handler, $len);
        fseek($handler, $i * $len);
        $i++;
    }
    fclose($handler);

}

0 个答案:

没有答案
相关问题