潜龙勿用,见龙在田
全部博文(540)
分类: 系统运维
2008-09-24 12:21:23
许多时候,根据与请求特征相关的来有选择地记录某些客户端请求会带来便利。首先,需要使用指令来设置特定的以标识符合某种特定条件的请求,然后用
CustomLog
指令的 env=
子句,根据这些来决定记录或排除特定的请求。例如:
# 不记录本机发出的请求
SetEnvIf Remote_Addr "127\.0\.0\.1" dontlog
# 不记录对robots.txt文件的请求
SetEnvIf Request_URI "^/robots\.txt$" dontlog
# 记录其他请求
CustomLog logs/access_log common env=!dontlog
再如,将使用英语的请求记录到一个日志,而记录非英语的请求到另一个日志:
SetEnvIf Accept-Language "en" english
CustomLog logs/english_log common env=english
CustomLog logs/non_english_log common env=!english
虽然上述已经展示了条件日志记录的强大和灵活,但这不是控制日志内容的唯一手段,还可以用日志后继处理程序来剔除你不关心的内容,从而使日志更加有用。
另外的例子,比如我不想.gif,,.jpg,.xbm结尾的都不写入日志文件,则:
SetEnvIf Request_URI "\.gif$" object_is_image=yes
SetEnvIf Request_URI "\.jpg$" object_is_image=yes
SetEnvIf Request_URI "\.xbm$" object_is_image=yes
CustomLog logs/access_log common object_is_image=!yes