相关信息

1.apache日志有访问日志和错误日志,错误日志根据日志级别来输出错误信息,而访问日志根据定义的日志格式来记录访问动作

2.访问日志格式在httpd.conf文件里面定义,在虚拟主机里面引用

3.如果网站访问量大,那么很容易造成访问日志过大,所以对访问日志进行自动切割非常有必要

4.本篇日志使用的日志分割工具是apache自己的rotatelogs工具

思路:在httd.conf中选择合适自己的日志格式>在虚拟主机的配置文件里引用并分割

第一:选择合适的日志格式

①打开httpd.conf文件

vim /usr/local/apache/conf/httpd.conf

②找到<If Module log_config_module>标签,内容如下(后面的文字是解释内容):

ErrorLog "logs/error_log" 错误日志
LogLevel warn 警告级别为warn
<IfModule log_config_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined 复合日志格式
LogFormat "%h %l %u %t \"%r\" %>s %b" common 常规日志格式
<IfModule logio_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio 复合日志格式
</IfModule>
CustomLog "logs/access_log" common 默认访问日志存放路径和格式,如果虚拟主机中不定义的话就是用这个
</IfModule>

我们使用的是如下这个日志格式,因为这个格式记录的东西比较丰富

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined 复合日志格式

 第二:在虚拟主机中配置日志格式并切割

①:打开虚拟主机配置文件

vim /usr/local/apache/conf/extra/httpd_vhosts.conf

②:注释掉原来的内容

#CustomLog "logs/dummy-host.example.com-access_log" common

③:插入如下代码

 CustomLog "|/usr/local/apache/bin/rotatelogs -l logs/discuz.expeak.com-access_%Y%m%d.log 86400" combined env=!paichu

|/usr/local/apache/bin/rotatelogs 指定使用rotatelogs工具 ,-l 参数是指定访问日志存放路径, %Y%m%d 是日志以年月日来命名,  是秒,换算过来也就是一天,也就是说一天切割一次日志。 combined 是日志格式,也就是说使用combined这个日志格式来记录日志。

扩展内容:排除图片和css、js等内容的日志记录

说明:默认的日志会记录所有访问内容,包括各种图片、css、js等,那如何过滤掉这些内容的,请看下面:

①在虚拟主机标签中设置要排除的内容(后面的文字是解释)

SetEnvIf Request_URI "\.(gif|jpg|png|css|js)$" paichu   匹配所有请求中包含.gif.jpg.png.css.js的内容,起名字为paichu

②在日志设置语句中添加排除

CustomLog "|/usr/local/apache/bin/rotatelogs -l logs/discuz.expeak.com-access_%Y%m%d.log 86400" combined env=!paichu

env=!paichu 的中!是否定的意思,也就是不等于排除

apache2.4配置访问日志分割并过滤图片CSS等无用内容的更多相关文章

  1. tomcat配置访问日志,访问首页主目录

    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" ...

  2. 配置tomcat日志分割

    由于Tomcat在默认情况下会将没有经过配置的web应用所产生的日志输出已及其本身的日志内容都输出到这个文件中,那么随着时间的推移,这个文件的尺寸将会越来越大,当需要检查日志内容时间会导致文件难以打开 ...

  3. linux环境下安装tomcat并配置tomcat日志分割

    1.直接解压apache-tomcat-7.0.69.tar.gz 存放在/home目录下 根据需要自定义tomcat名称 mv apache-tomcat-7.0.69 Tomcat7 2.解压cr ...

  4. apache 访问日志access_log 配置和解析 rotatelogs分割日志

    一.解析访问日志        apache 的访问日志记载着大量的信息,学会高效快捷的读出其中关键信息对我们的工作有极大帮助.       如果Apache的安装方式是默认安装,服务器一运行就会有两 ...

  5. Tomcat访问日志详细配置

    在server.xml里的<host>标签下加上 <Valve className="org.apache.catalina.valves.AccessLogValve&q ...

  6. Nginx 笔记与总结(4)配置 server 访问日志

    打开 nginx.conf: [root@localhost ~]# cd /usr/local/nginx/conf [root@localhost conf]# vim nginx.conf 在默 ...

  7. Tomcat访问日志详细配置(转)

    在server.xml里的<host>标签下加上<Valve className="org.apache.catalina.valves.AccessLogValve&qu ...

  8. 转 Tomcat访问日志详细配置

    配置http访问日志.Tomcat自带的能够记录的http访问日志已经很详细了取消下面这段的注释: <Valve className="org.apache.catalina.valv ...

  9. Nginx 访问日志

    配置访问日志: [root@localhost ~]$ cat /usr/local/nginx/conf/nginx.conf http { log_format main '$remote_add ...

随机推荐

  1. SQL Server 2014 Backup Encryption

    转载自: Microsoft MVP Award Program Blog 来源:Microsoft MVP Award Program Blog 的博客:https://blogs.msdn.mic ...

  2. linux后台查看共享内存和消息队列的命令

    ipcs ipcs -q : 显示所有的消息队列 ipcs -qt : 显示消息队列的创建时间,发送和接收最后一条消息的时间 ipcs -qp: 显示往消息队列中放消息和从消息队列中取消息的进程ID ...

  3. flask-sqlalchemy、pytest 的单元测试和事务自动回滚

    flask-sqlalchemy.pytest 的单元测试和事务自动回滚 使用 flask-sqlalchemy 做数据库时,单元测试可以帮助发现一些可能意想不到的问题,像 delete-cascad ...

  4. flume 配置

    [root@dtpweb data]#tar -zxvf apache-flume-1.7.0-bin.tar.gz[root@dtpweb conf]# cp flume-env.sh.templa ...

  5. jQuery 跨域访问的三种方式 No 'Access-Control-Allow-Origin' header is present on the reque

    问题: XMLHttpRequest cannot load http://v.xxx.com. No 'Access-Control-Allow-Origin' header is present ...

  6. (转)CMOS Sensor的调试经验分享

    CMOS Sensor的调试经验分享 我这里要介绍的就是CMOS摄像头的一些调试经验. 首先,要认识CMOS摄像头的结构.我们通常拿到的是集成封装好的模组,一般由三个部分组成:镜头.感应器和图像信号处 ...

  7. TCP心跳 | TCP keepAlive(转)

    应用层对于每个socket采用如下函数来开启 keepalive机制,其参数将采用系统上述配置. setsockopt(rs, SOL_SOCKET, SO_KEEPALIVE, (void *)&a ...

  8. ibatis输入多个参数

    ibatis输入多个参数     在ibatis中,会发现其输入参数只能有一个,于是当出现需要进行多个输入参数的时候,就要想点办法了,我看到的有以下两种比较好的方法能够解决这个问题1) 用String ...

  9. java如何使用JUnit进行单元测试

    注:所有内容都是在eclipse上实现,关于eclipse的安装和jdk的安装配置,请看:http://www.cnblogs.com/fench/p/5914827.html 单元测试是什么? 百度 ...

  10. C++程序员如何入门Unreal Engine 4

    摘要: 一位程序员网友小保哥分享自己的UE4快速上手过程,只是笔记,52VR做了一点更加适合阅读的修改,整理给大家. 首先,本文只是针对有比较熟练C++技能的程序员,他可以没有任何图形学或游戏引擎方面 ...