版权归原作者所有,如有侵权,请联系我们

[科普中国]-错误日志

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

定义和内容

以下以阿帕奇为例说明错误日志的定义和内容。

1、位置和内容

错误日志无论在格式上还是在内容上都和访问日志不同。然而,错误日志和访问日志一样也提供丰富的信息,我们可以利用这些信息分析服务器的运行情况、哪里出现了问题。

错误日志的文件名字是error_log,但如果是Win平台,则错误日志的文件名字是error.log。错误日志的位置可以通过ErrorLog指令设置:

ErrorLog logs/error.log

除非文件位置用“/”开头,否则这个文件位置是相对于ServerRoot目录的相对路径。如果阿帕奇采用默认安装方式安装,那么错误日志的位置应该在/usr/local/apache/logs下。但是,如果阿帕奇用某种包管理器安装,错误日志很可能在其他位置。

正如其名字所示,错误日志记录了服务器运行期间遇到的各种错误,以及一些普通的诊断信息,比如服务器何时启动、何时关闭等。

我们可以设置日志文件记录信息级别的高低,控制日志文件记录信息的数量和类型。这是通过LogLevel指令设置的,该指令默认设置的级别是error,即记录称得上错误的事件。

大多数情况下,我们在日志文件中见到的内容分属两类:文档错误和CGI错误。但是,错误日志中偶尔也会出现配置错误,另外还有前面提到的服务器启动和关闭信息。1

二、文档错误

文档错误和服务器应答中的400系列代码相对应,最常见的就是404错误——Document Not Found(文档没有找到)。除了404错误以外,用户身份验证错误也是一种常见的错误。1

三、CGI错误

错误日志最主要的用途或许是诊断行为异常的CGI程序。为了进一步分析和处理方便,CGI程序输出到STDERR(Standard Error,标准错误设备)的所有内容都将直接进入错误日志。这意味着,任何编写良好的CGI程序,如果出现了问题,错误日志就会告诉我们有关问题的详细信息。1

四、查看日志文件

下面看看如何方便地查看服务器日志文件。用telnet连接到服务器,然后输入下面的命令:

tail -f /usr/local/apache/logs/error_log

该命令将显示出日志文件的最后几行内容,如果有新的内容加入到日志文件,它还会立即显示出新加入的内容。

Windows用户也同样可以使用这种方法,比如可以使用各种为Windows提供的Unix工具软件包。

还有一种替代方法是使用下面的Perl代码,它利用了一个称为File::Tail的模块:

use File::Tail; $file=File::Tail->new(\"/some/log/file\"); while (defined($line=$file->read)) { print \"$line\"; } 无论具体采用的是哪一种方法,同时打开多个终端窗口都是一种好习惯:比如在一个窗口中显示错误日志,在另一个窗口中显示访问日志。这样,我们就能够随时获知网站上发生的事情并立即予以解决。

查看本地错误日志系统日志系统日志包含了由Windows系统组件记录的事件。例如,在启动期间装入驱动程序或其他系统组件失败被记录到系统日志。要查看系统日志:

打开命令提示符。

在提示符下输入eventvwr。这打开了Windows事件查看器。

应用程序日志应用程序日志包含了由应用程序或程序记录的事件。例如,数据库程序可能在应用程序日志中记录一个文件错误。要查看应用程序日志:

打开命令提示符。

在提示符下输入eventvwr。这打开了Windows事件查看器。

解释日志信息在两种日志中,每个事件按照日期和时间顺序(首先是最近的)分行显示,带有下列信息:

类型:事件类型,可以是信息、警告或错误。

日期和时间:事件被写入日志的日期和时间。

源:引起该事件的操作。

类别:事件的类别。缺省类别是无。

事件:事件编号。

用户:事件发生时的用户名。

计算机:本地机器的名称。

查看单个日志条目:

1 在系统或应用程序日志中,查找日志条目。

2 右键单击条目。

在WindowsWindowsServer 2008 中,单击事件以打开“事件属性”窗口。

该窗口显示事件的描述。选择“详细信息”选项卡可以查看将记录写入日志时解析的字节或字。

3 使用向上和向下箭头键上下移动以查看日志事件。

4 要关闭窗口,请单击确定以返回到系统日志或应用程序日志2。

避免错误日志被利用以下以PHP为例说明如何避免错误日志被利用而导致系统遭到攻击。

对于PHP开发者来说,一旦某个产品投入使用,应该立即将display_errors选项关闭,以免因为这些错误所透露的路径、数据库连接、数据表等信息而遭到黑客攻击。但是,任何一个产品在投入使用后,都难免会有错误出现,那么如何记录一些对开发者有用的错误报告呢?我们可以在单独的文本文件中将错误报告作为日志记录。错误日志的记录,可以帮助开发人员或者管理人员查看系统是否存在问题。

如果需要将程序中的错误报告写入错误日志中,只要在PHP的配置文件中,将配置指令log_errors开启即可。错误报告默认就会记录到Web服务器的日志文件里。

评论
科普633c2bb156eb9
进士级
已阅
2023-10-10
科普cuili007
庶吉士级
2023-01-01