apache 访问日志排除静态文件,如 css|js|png|gif 等

Pin*_*ain 1 logging apache-2.2

我想减少我的 Apache 访问日志的大小,并且需要从日志记录中排除静态文件,例如 js|css|xml|png|gif 等。

我正在解析访问日志以跟踪用户活动和网站数据。

我试过 DonNotLog apache 指令但没有用,可能是我的代码配置有问题:(

我的 Apache 配置是——

SetEnvIf Request_URI "(jpg|css)" DontLog

LogFormat "%v:%p %h %l %u \"%{%s}t\" %D \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\" %{username}n %{sessionID}n" vhost_combined DontLog
Run Code Online (Sandbox Code Playgroud)

Jen*_*y D 7

您可以使用SetEnvIf和 日志记录指令的组合来做到这一点。例子:

SetEnvIf Request_URI "\.gif$|\.jpg$" is_static
Run Code Online (Sandbox Code Playgroud)

将所有以 .gif 或 .jpg 结尾的 URI 设置为具有环境变量“is_static”。

CustomLog logs/access_log common env=!is_static
Run Code Online (Sandbox Code Playgroud)

意味着没有 is_static 环境变量的所有内容都将以通用格式写入 access_log。

扩展 SetEnvIf 指令中的正则表达式以涵盖您想要的所有文件类型,留给读者作为练习...