LAMP网站开发黄金组合Linux+Apache+MySQL+PHP
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3.6 日志记录

Apache可以记录Web访问中感兴趣的几乎所有信息。当运行Apache服务器时,生成两个标准的日志文件—access_log和error_log。除了error_log(默认情况下就是access_log),所有日志文件都由CustomLog和LogFormat指令指定的格式生成。这些指令在httpd.conf文件中出现。使用LogFormat指令可以定义新的日志文件格式:

    LogFormat "%h  %l  %u  %t  \ "%> %s %b "common

common日志格式是创建自定义日志格式的好的起始点。注意大多数可用的日志分析根据假定使用的是common日志格式或者combined日志格式,这两种格式都在默认的配置文件中定义。

表3-5列出了LogFormat语句可以使用的变量:

表3-5 LogFormat语句的变量

在每个变量中,可以在前面设置一个条件,决定是否显示该变量。如果不显示,则显示-。这些条件是数值返回值列表的形式。例如,%!401u将显示REMOTE_USER的值,除非返回值为401。可以使用CustomLog指令指定日志文件的位置和格式。下面是httpd.conf文件中指定日志文件的语句:

    //
    // The location and format of the access logfile(Common Logfile Format).
    // If you do not define any access logfiles within a <VirtualHost>
    // container, they will be logged here.  Contrariwise, if you *do*
    // define per-<VirtualHost> access logfiles, transactions will be
    // logged therein and *not* in this file.
    //
    CustomLog logs/access_log common

没有指定日志文件的绝对路径,则日志文件的位置假定为相对于ServerRoot。