设为首页 收藏本站
查看: 790|回复: 0

[经验分享] apache开启日志记录,access.log

[复制链接]

尚未签到

发表于 2015-11-13 15:02:44 | 显示全部楼层 |阅读模式
apache开启日志记录,access.log
发现logs文件夹里面只有error.log
没有access.log
修改httpd.conf
# CustomLog "logs/access.log" common 去掉前面这个#号
*******************************************************************

log_format  access  '$remote_addr - $remote_user [$time_local] "$request" '
              '$status $body_bytes_sent "$http_referer" '
              '"$http_user_agent" $http_x_forwarded_for';

   location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires      30d;
        access_log off;
    }

    location ~ .*\.(js|css)?$
    {
        expires      1d;
        access_log off;
    }
    access_log  /www/logs/9enjoy.com.log access;

apache下两种方式:
1.只记录html,htm,php等文件SetEnvIfNoCase Request_URI "(\.htm|\/|\.html|\.php)$" htm
CustomLog logs/9enjoy.com-access_log combined env=htm
2.排除法:<FilesMatch “\.(ico|gif|jpg|png|bmp|swf|js|css)”>
SetEnv IMAGE 1
</FilesMatch>
CustomLog logs/9enjoy.com-access_log combined env=!IMAGE******************************************************************apache运行时会记录其处理的所有请求的相关信息.同时,也会记录在处理过程中发生异常状况的相关信息.服务器可以用多种&#26684;式将与请求相关的活动信息记录在多个日志文件中,不过却只能记录一份错误信息.关于活动记录,它是在请求完成被处理后才会对日志内容进行写入.如一个大文件的上传,它是在文件上传完后才写入日志的.而错误信息是在错误发生时就写入.当然,错误的发生也是一瞬间的事.不会出现请求那种长时间处理.有一种通用的显示日志的方式:CLF(common log format).&#26684;式是:&quot;%h %l %u %t \&quot;%r\&quot; %>s %b&quot;但随着发展,这种&#26684;式的内容不够多,人们又组织了另一种&#26684;式:&quot;%h %l %u %t \&quot;%r\&quot; %>s %b \&quot;%{Referer}i\&quot; \&quot;%{User-agent}i\&quot;&quot;它能记住请求的浏览器版本及其他客户端软件的名称与版本等.Apache自带有一个标准的日志模块:mod_log_config.另外,Apache 2.0还带有一个额外的模块:mod_logio.它是前者的加强版.而且在http://modules.apache.org的模块注册区还有其它的第三方模块可供使用.例如,我的Apache的httpd.conf文件中有如下配置:ErrorLog &quot;logs/error.log&quot;LogLevel warn<IfModule log_config_module>    LogFormat &quot;%h %l %u %t \&quot;%r\&quot; %>s %b \&quot;%{Referer}i\&quot; \&quot;%{User-Agent}i\&quot;&quot; combined    LogFormat &quot;%h %l %u %t \&quot;%r\&quot; %>s %b&quot; common    <IfModule logio_module>      LogFormat &quot;%h %l %u %t \&quot;%r\&quot; %>s %b \&quot;%{Referer}i\&quot; \&quot;%{User-Agent}i\&quot; %I %O&quot; combinedio    </IfModule>    CustomLog &quot;logs/access.log&quot; common</IfModule>在我的Apache安装目录下的logs目录下有两个文件,就是上面配置的error.log和access.log上面的配置先定义了Apache错误信息的日志输出.并定义了日志输出的等级.等级有如下几种: 等级名称介绍 emerg 紧急状况;服务器无法使用 alert 必须立刻采取动作  crit危急状况  error出现错误  warn警告  notice正常,但有情况要注意  info普通信息  debug调试级别信息,包括模块运行状态设定一个等级后,日志文件中会记录它,以及它以上等级的日志.但不管设定为可&#20540;,永远都会记录notice等级的信息.
日志中&#26684;式字符串:&#26684;式字符串描述%%百分号(Apache2.0.44或更高的版本)%a远端IP地址%A本机IP地址%B除HTTP头以外传送的字节数%b以CLF&#26684;式显示的除HTTP头以外传送的字节数,也就是当没有字节传送时显示'-'而不是0。%{Foobar}C在请求中传送给服务端的cookieFoobar的内容。%D服务器处理本请求所用时间,以微为单位。%{FOOBAR}e环境变量FOOBAR的&#20540;%f文件名%h远端主机%H请求使用的协议%{Foobar}i发送到服务器的请求头Foobar:的内容。%l远端登录名(由identd而来,如果支持的话),除非IdentityCheck设为&quot;On&quot;,否则将得到一个&quot;-&quot;。%m请求的方法%{Foobar}n来自另一个模块的注解Foobar的内容。%{Foobar}o应答头Foobar:的内容。%p服务器服务于该请求的标准端口。%P为本请求提供服务的子进程的PID。%{format}P服务于该请求的PID或TID(线程ID),format的取&#20540;范围为:pid和tid(2.0.46及以后版本)以及hextid(需要APR1.2.0及以上版本)%q查询字符串(若存在则由一个&quot;?&quot;引导,否则返回空串)%r请求的第一行%s状态。对于内部重定向的请求,这个状态指的是原始请求的状态,---%>s则指的是最后请求的状态。%t时间,用普通日志时间&#26684;式(标准英语&#26684;式)%{format}t时间,用strftime(3)指定的&#26684;式表示的时间。(默认情况下按本地化&#26684;式)%T处理完请求所花时间,以秒为单位。%u远程用户名(根据验证信息而来;如果返回status(%s)为401,可能是假的)%U请求的URL路径,不包含查询字符串。%v对该请求提供服务的标准ServerName%V根据UserCanonicalName指令设定的服务器名称。%X请求完成时的连接状态:X=连接在应答完成前中断。&#43;=应答传送完后继续保持连接。-=应答传送完后关闭连接。(在1.3以后的版本中,这个指令是%c,但这样就和过去的SSL语法:%{var}c冲突了)
%I接收的字节数,包括请求头的数据,并且不能为零。要使用这个指令你必须启用mod_logio模块。%O发送的字节数,包括请求头的数据,并且不能为零。要使用这个指令你必须启用mod_logio模块。
按照日或小时记录请求日志======================================使用CustomLog及rotatelogs(已经在apache的bin目录下包含:rotatelogs.exe.linux下目录可能不同):CustomLog &quot;| bin/rotatelogs logs/access_log.%Y-%m-%d 86400&quot; combined该配置会将日志输出到另一程序,而非文件.即:rotatelogs.exe.这样,我们就可以在不重启Apache的情况下来生成新的文件.该脚本会在指定时间自动开启新文件,并写入日志.rotatelogs第一个参数是日志文件的文件路径和名:logs/access_log.%Y-%m-%d 86400 如果它包含有一个以上的%字符,则会被作为strftime(3)的&#26684;式字符串来处理;如上面的&#26684;式表示年月晶.否则,一个十位数长的更新时间( 秒为单位)会被附加到文件名上.如:若文件名为foo,则会产生如foo.1234567890的日志文件.而上面的文件则会产生:access_log.2011-04-25这样的文件.第二个参数是两次更新时间的间隔(以秒为单位).当系统时间是此参数&#20540;的倍数时,它就会产生更新操作.如,一天有86400秒,若设定此境遇早每天午夜就会产生新的日志文件.
每月第一天更新日志文件======================================同样,也是用脚本来处理,不过是使用:rotate-log-monthly.pl来处理.但这个脚本不包括在apache安装包中,我们需要自己下载.&#26684;式如下:CustomLog &quot;| rotate-log-monthly.pl logs/access_log-%Y-%M&quot; CLF
记录主机名而非IP地址======================================CustomLog &quot;| bin/logresolve -c >> log/access_log.resolved&quot; combinedlogresolve 已经在bin下包括.

  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-138886-1-1.html 上篇帖子: 使用apache模块rewrite_module (转) 下篇帖子: 允许所有网络包括外网访问apache服务器的方法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表