美文网首页我爱编程
Apache控制日志记录

Apache控制日志记录

作者: 石乐志的LK | 来源:发表于2017-08-21 19:21 被阅读0次

那么我们为什么要控制日志记录呢?

如果一个站点访问量特别大,那么访问日志就会很多,但有一些访问日志是可以忽略掉的,比如网站的一些图片,还有 js, css等静态对象。而这些文件的访问往往是巨量的,而且即使记录这些日志也没有什么用,所以可以过滤掉这些访问的日志。

具体怎么做,还是让KK来和你一起学习吧!

编辑虚拟主机的配置文件

vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

在相应的虚拟主机中加入配置文件如下:

SetEnvIf Request_URI ".*\.gif$" image-request

SetEnvIf Request_URI ".*\.jpg$" image-request

SetEnvIf Request_URI ".*\.png$" image-request

SetEnvIf Request_URI ".*\.bmp$" image-request

SetEnvIf Request_URI ".*\.swf$" image-request

SetEnvIf Request_URI ".*\.js$" image-request

SetEnvIf Request_URI ".*\.css$" image-request

ErrorLog  "|/usr/local/apache2/bin/rotatelogs -l /usr/local/apache2/logs/aaa-error-%Y%m%d.log 86400"

CustomLog "|/usr/local/apache2/bin/rotatelogs -l /usr/local/apache2/logs/oem.discuz.qq.com-access_%Y%m%d.log 86400" combined env=!image-request

哇,好多东东,宝宝怕~~

不要慌张撒,我来带你看一下具体的语句意思

SetEnvIf是Apache的一个模块,我查了好多百度,只说是配置不记录特定日志的,却没说出个所以然,所以Google喽!在Apache官网上找到如下解释:

Themod_setenvifmodule allows you to set internal environment variables according to whether different aspects of the request match regular expressions you specify. These environment variables can be used by other parts of the server to make decisions about actions to be taken, as well as becoming available to CGI scripts and SSI pages.

大概就是SetEnvIf就是一个根据你给出的正则表达式,设置内部环境变量的东东,怎么样?简单吧。

SetEnvIf Request_URI ".*\.png$" image-request      这句话的意思就是把Request_URI中匹配正则表达式".*\.png$"的部分赋值给变量image-request。那正则表达式".*\.png$"又是什么东东,这个呢代表了任何以.png结尾的文件。所以所有的setenvif request_uri就解释完了。

!代表非    env=!image-request放在CustomLog后面代表不要变量image-request所代表的这些内容,所以就就能过滤日志啦

保存文件重启Apache服务器

/usr/local/apache2/bin/apachectl graceful

测试

现在去打开咱们的网页访问以下,就会产生日志信息了,可以到/usr/local/apache/logs中去查看是否生成了相应的日志文件,如果看不到错误日志,可以尝试访问错误的本站资源 就可以看到生成的错误日志了(www.123.com/asd.php)


残留问题

我现在只有一个搭建的Discuz论坛,我访问了好多次,但是并没有产生什么以png,gif等图片格式结尾的路径,可能是论坛问题,自己也不会日志的分析,所以这次除了感觉日志名字变了之外,臣妾实在是看不到效果啊~、~

相关文章

  • Apache控制日志记录

    那么我们为什么要控制日志记录呢? 如果一个站点访问量特别大,那么访问日志就会很多,但有一些访问日志是可以忽略掉的,...

  • Apache 必备配置

    1. Apache 设置日志记录代理的IP 以及客户端IP 2. Apache 中记录指定URI 的日志 3. A...

  • Mybatis日志级别

    1.1 log4j简介 log4j是Apache提供的一款记录日志的工具 log4j既可以将日志信息打印在控制台,...

  • Linux_222_Apache的access日志

    定义访客日志格式有时候我们需要定制apache默认显示的日志格式,增加或者减少日志记录的内容,更好的让运维人员掌握...

  • Logger

    对于一个要被记录的日志记录,它的日志记录级别必须高于日志记录器和处理器的阈值,日志管理器的配置文件设置的默认控制台...

  • nginx

    参考: nginx和apache日志记录用户真实ip:X-Real-IP nginx location 匹配规则 ...

  • log

    就是记录日志的咯 日志的flag. 用于控制日志显示的格式 关于 calldepth 的实验 -- runt...

  • Log4J

    日志是应用软件中不可缺少的部分,Apache的开源项目log4j是一个功能强大的日志组件,提供方便的日志记录。日志...

  • 快速修复 Log4j “核弹级” 漏洞

    Log4j漏洞 Apache Log4j2是一个基于Java的日志记录工具。由于Apache Log4j2存在递归...

  • log4j详细介绍

    log4j是什么 *Apache的开源项目log4j是一个功能强大的日志组件(框架),提供方便的日志记录。 日志的...

网友评论

    本文标题:Apache控制日志记录

    本文链接:https://www.haomeiwen.com/subject/qsjhdxtx.html