当前位置:  开发笔记 > 编程语言 > 正文

如何在PHP中解析Apache的错误日志?

如何解决《如何在PHP中解析Apache的错误日志?》经验,为你挑选了2个好方法。

我想创建一个脚本来解析或理解apache的错误日志,看看最近的错误是什么.我想知道是否有人有这样做或有任何想法从哪里开始?



1> Powerlord..:

首先要考虑以下几点:

    首先,您的PHP用户可能无法访问Apache的日志文件.

    其次,PHP和Apache不会告诉你日志文件在哪里,

    最后,Apache日志文件可能会变得非常大.

但是,如果这些都不适用,则可以使用普通文件读取命令来执行此操作.获取最后一个错误的最简单方法是

$contents = @file('/path/to/error.log', FILE_SKIP_EMPTY_LINES);
if (is_array($contents)) {
    echo end($contents);
}
unset($contents);

这可能是一种更好的方法,不会记忆,但我会将其作为读者的练习.

最后一条评论:PHP还有一个将PHP错误重定向到日志文件的ini设置: error_log = /path/to/error.log

你可以使用php_flag表示法在httpd.conf或.htaccess文件中设置它(如果你有访问权限):

php_flag error_log /web/mysite/logs/error.log


好吧,在这种情况下,这意味着我在工作,没有太多时间编写非工作相关的代码.:)

2> SeanDowney..:

对于其他寻找样本脚本的人,我把东西放在一起,它有基础知识:


handleError() /home/gsmcms/public_html/central/cake/libs/debugger.php:0
        preg_match('~^\[(.*?)\]~', $line, $date);
        if(empty($date[1])) {
            continue;
        }
        preg_match('~\] \[([a-z]*?)\] \[~', $line, $type);
        preg_match('~\] \[client ([0-9\.]*)\]~', $line, $client);
        preg_match('~\] (.*)$~', $line, $message);
        ?>
    
Date Type Client Message

推荐阅读
谢谢巷议
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有