【问题标题】:Apache logging specific dataApache 记录特定数据
【发布时间】:2013-11-21 06:19:20
【问题描述】:

我正在尝试访问 Apache 的访问日志并实时跟踪带宽使用情况。

我们知道 Apache 会记录对服务器发出的每个请求,并且日志文件可能高达几千兆字节,因此 PHP 很难对日志文件进行短语处理。

假设我为用户提供了带有特殊 URL 前缀的下载链接。

有没有办法只记录那些下载链接?如果是这样,我可以使用多日志将这些数据记录到另一个日志文件中。 Multi Log

Apache config 使用%u 表示 URL,有没有办法过滤这个?

【问题讨论】:

    标签: php apache logging apache2 webserver


    【解决方案1】:

    让php创建日志文件,当人们点击链接时,php可以添加到日志文件并输出要下载的文件。

    <?php
        /*Logging Proccess*/
        $file = "Log.txt";
        $to_be_logged = file_get_contents($file);
        $to_be_logged .= /*Insert what you want to log like ip address or sumthing*/$_SERVER['REMOTE_ADDR']."\n";
        file_put_contents($file, $to_be_logged);
        /*Download Script*/
        header("Content-Type: application/octet-stream");
        header("Content-Disposition: attachment; filename=filetobedownloaded.rar");
    ?>
    

    把它放在一个名为 download.php 的文件中,然后 在该文件所在的文件旁边添加一个名为 Log.txt 的文件 这应该可以...

    【讨论】:

    • 但是您无法通过这种方式跟踪每个文件的带宽使用情况!可以吗?
    • 你可以创建一个日志,输入每个文件的大小,然后在需要查看总数时将其全部加起来
    猜你喜欢
    • 2010-10-02
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-01
    • 1970-01-01
    • 2021-08-02
    • 1970-01-01
    相关资源
    最近更新 更多