php 输出apache日志_apache httpclient 限制日志输出 - CSDN
精华内容
参与话题
  • 前言Windows服务器下部署Wamp环境作为PHP访问环境,在出现50人左右共同访问时,出现访问速度过慢问题,网上查阅资料发现是由于日志文件过大导致。查看日志文件发现已有30M以上,移除日志文件,发现速度回归正常。...

    前言

    Windows服务器下部署Wamp环境作为PHP访问环境,在出现50人左右共同访问时,出现访问速度过慢问题,网上查阅资料发现是由于日志文件过大导致。查看日志文件发现已有30M以上,移除日志文件,发现速度回归正常。查阅资料修改Apache配置,已使这种情况不在发生。

    解决步骤如下

    1. windows下删除apache_access.log和error.log文件,删除C:\wamp\logs目录下的apache_access.log和access.log文件

    2. 打开Apache的httpd.conf配置文件并找到下面两条配置

    ErrorLog "c:/wamp/logs/apache_error.log"  
    CustomLog "c:/wamp/logs/access.log" common  

    修改为

    #ErrorLog "c:/wamp/logs/apache_error.log"  
    
    #限制错误日志文件为 1M  
    ErrorLog "|bin/rotatelogs.exe -l c:/wamp/logs/apache_error-%Y-%m-%d.log 1M"  
    #每天生成一个错误日志文件  
    ErrorLog "|bin/rotatelogs.exe -l c:/wamp/logs/apache_error-%Y-%m-%d.log 86400"  
    #CustomLog "c:/wamp/logs/access.log" common 
    
    #限制WEB日志文件为 1M  
    CustomLog "|bin/rotatelogs.exe -l c:/wamp/logs/access-%Y-%m-%d.log 1M" common 
    #每天生成一个WEB日志文件   
    CustomLog "|bin/rotatelogs.exe -l c:/wamp/logs/access-%Y-%m-%d.log 86400" common

    检查了一下WEB日志,一般访问一次产生一条记录,觉得无用且频率高,我最后选择了关闭日志输出。

    3.修改错误级别

    #
    # LogLevel: Control the number of messages logged to the error_log.
    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    #
    LogLevel warn

    其中,LogLevel用于调整记于错误日志中的信息的详细程度。(参阅ErrorLog指令)。可以选择下列级别,依照重要性降序排列:

    Level Description Example
    emerg   紧急 – 系统无法使用。“Child cannot open lock file. Exiting”
    alert   必须立即采取措施。“getpwuid: couldn’t determine user name from uid”
    crit    致命情况。“socket: Failed to get a socket, exiting child”
    error   错误情况。“remature end of script headers
    warn    警告情况。“child process 1234 did not exit, sending another SIGHUP”
    notice  一般重要情况。“httpd: caught SIGBUS, attempting to dump core in …”
    info    普通信息。“Server seems busy, (you may need to increase StartServers, or Min/MaxSpareServers)…”
    debug 出错级别信息 “Opening config file …”

    默认级别是warn,那么warn级别以上的日志都会记录,会产生大量“文件不存在”的erro级别的错误日志。建议使用 crit 级别的设置,这样只记录致命级别以上的日志,有效减少日志数量。

    展开全文
  • 日志-apache的access_log与error_log

    万次阅读 2017-02-17 20:47:32
    access_log为访问日志,记录所有对apache服务器进行请求的访问,它的位置和内容由CustomLog指令控制,LogFormat指令可以用来简化该日志的内容和格式  2. error_log 错误日志 error_log为错误日志,记录下任何错误的...
    1. access_log 访问日志
    access_log为访问日志,记录所有对apache服务器进行请求的访问,它的位置和内容由CustomLog指令控制,LogFormat指令可以用来简化该日志的内容和格式 

    2. error_log 错误日志
    error_log为错误日志,记录下任何错误的处理请求,它的位置和内容由ErrorLog指令控制,通常服务器出现什么错误,首先对它进行查阅,是一个最重要的日志文件


    通过apache配置文件,找到日志存放地址:
    find / -name "httpd.conf"
    找到配置文件地址,打开它,在里边找到apache的【访问日志】与【错误日志】存放地址

    sudo vi /private/etc/apache2/httpd.conf



    我的存放地址分别在:
    /private/var/log/apache2/error_log
    /private/var/log/apache2/access_log


    一。查看apache错误日志
    tail -f -30  "/private/var/log/apache2/error_log"

    [Fri Jan 13 14:32:52 2017] [error] [client 127.0.0.1] client denied by server configuration: /export/home/live/ap/htdocs/test
    第一项是错误发生的日期和时间;
    第二项是错误的严重性,LogLevel指令使只有高于指定严重性级别的错误才会被记录;
    第三项是导致错误的IP地址;
    此后是信息本身,在此例中,服务器拒绝了这个客户的访问。服务器在记录被访问文件时,用的是文件系统路径,而不是Web路径。
    错误日志中会包含类似上述例子的多种类型的信息。此外,CGI脚本中任何输出到stderr(标准错误)的信息会作为调试信息原封不动地记录到错误日志中。



    二。同样的,在apache配置文件里找到access_log存放地址
    tail -f -30  "/private/var/log/apache2/access_log"


    看一条典型的access_log的日志记录:
    61.155.149.20 - - [13/Jan/2017:15:42:47 +0800] "GET /category/db/ HTTP/1.1" 200 23225

    1).61.155.149.20 
    这是一个请求到apache服务器的客户端ip,默认的情况下,第一项信息只是远程主机的ip地址,但我们如果需要apache查出主机的名字,可以将 HostnameLookups设置为on,不推荐使用,会大大降低网站速度。

    2). - 
    这一项是空白,使用"-"来代替,用于记录浏览者的标识,对于大多数浏览器,这项都是空。

    3). - 
    也为空,记录浏览者进行身份验证时提供的名字,大多数这项也为空。

    4). [13/Jan/2017:15:42:47 +0800]
    第四项是记录请求的时间,格式为[day/month/year:hour:minute:second zone],最后的+0800表示服务器所处的时区为东八区

    5). "GET /category/db/ HTTP/1.1" 
    这一项最有用,首先,它告诉我们的服务器收到的是一个GET请求,其次,是客户端请求的资源路径,第三,客户端使用的协议时HTTP/1.1,整个格式为"%m %U%q %H",即"请求方法/访问路径/协议"

    6). 200 
    这是一个状态码,由服务器端发送回客户端,它告诉我们客户端的请求是否成功,或者是重定向,或者是碰到了什么样的错误,这项值为200,表示服务器已经成 功的响应了客户端的请求,一般来说,这项值以2开头的表示请求成功,以3开头的表示重定向,以4开头的标示客户端存在某些的错误,以5开头的标示服务器端 存在某些错误。

    7).23225 
    这项表示服务器向客户端发送了多少的字节,在日志分析统计的时侯,把这些字节加起来就可以得知服务器在某点时间内总的发送数据量是多少


    本文叙述的是apache下的两种日志访问nginx日志请点击

    php错误日志:检测php运行时或用户自记录错误日志:http://blog.csdn.net/ty_hf/article/details/55505262
    mysql慢日志:记录mysql服务器中影响性能的SQL:http://blog.csdn.net/ty_hf/article/details/55504172

    本文地址:http://blog.csdn.net/ty_hf/article/details/55504719

    展开全文
  • Apache配置错误日志

    千次阅读 2015-07-13 10:12:43
    可以通过查看apache配置文件:httpd.conf文件 来看日志错误文件存储位置: 效果如: 错误日志配置指令 :ErrorLog  ErrorLog 指令指定了当服务器遇到错误时记录错误日志的文件名。其格式为:  格式1:Error...

    可以通过查看apache配置文件:httpd.conf文件 来看日志错误文件存储位置:

    效果如:

    错误日志配置指令 :ErrorLog 

    ErrorLog 指令指定了当服务器遇到错误时记录错误日志的文件名。其格式为: 
    格式1:ErrorLog 错误日志文件名 
    格式2:ErrorLog "|管道程序名" 

    格式1直接指定错误日志文件名,除非文件位置用”/“开头,否则 ErrorLog 所制定的文件位置是相对于 ServerRoot 目录的相对路径。 
    格式2实现管道日志,它指定一个命令来处理错误日志。 
    Apache 编译时默认的错误日志可以使用如下命令获得: 
    $apachectl -V | grep DEFAULT_ERRORLOG 
     -D DEFAULT_ERRORLOG="logs/error_log" 

    LogLevel 
    LogLevel 用于调整记于错误日志中的信息的详细程度。其格式为: LogLevel 错误日志记录等级 
    下面着重说说日志记录等级: 
    紧急程度     等级     说明 
    1     emerg     出现紧急情况使得该系统不可用,如系统宕机等 
    2     alert     需要立即引起注意的情况 
    3     crit     危险情况的警告 
    4     error     除了emerg、alert、crit的其他错误 
    5     warn     警告信息 
    6     notice     需要引起注意的情况,但不如error、warn重要 
    7     info     值得报告的一般消息 
    8     debug     由运行于debug模式的程序所产生的消息 

    如果指定了等级 warn,那么就记录紧急程度为1至5的所有错误信息。 


    Ubuntu 中 Apache 的错误日志配置 
    配置错误日志相对简单,只要说明日志文件的存放路径和错误日志记录等级即可。 
    从 Ubuntu 中的 /etc/apache2/apache2.conf 中可知,默认的错误日志存放在 /var/log/apache2/error.log 
    ErrorLog /var/log/apache2/error.log 
    LogLevel warn 
    您可以在 /etc/apache2/apache2.conf 中设置错误日志记录等级,也可以在相应的虚拟主机的配置文件中设置。 


    错误日志文件举例 

    下面是一个错误日志文件的截取。 
    $tail /var/log/apache2/error.log 
    [Wed Jun 20 14:53:15 2007] [error] [client 192.168.0.66] File does not exist: /usr/share/phpmyadmin/favicon.ico 
    [Wed Jun 20 11:12:50 2007] [notice] Apache/2.0.55 (Ubuntu) DAV/2 SVN/1.3.1 mod_python/3.1.4 Python/2.4.3 PHP/5.1.2 configured -- resuming normal operations 
    [Wed Jun 20 11:12:49 2007] [notice] Digest: done 
    [Wed Jun 20 11:12:49 2007] [notice] Digest: generating secret for digest authentication ... 
    [Wed Jun 20 09:22:22 2007] [notice] caught SIGTERM, shutting down 

    从文件内容可以看出,每一行记录了一个错误。格式为: [日期和时间]   [错误等级]   错误消息 
    展开全文
  • apache开启日志记录,access.log

    万次阅读 2013-11-28 19:28:21
    apache开启日志记录,access.log 发现logs文件夹里面只有error.log 没有access.log 修改httpd.conf # CustomLog "logs/access.log" common 去掉前面这个#号

    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运行时会记录其处理的所有请求的相关信息.同时,也会记录在处理过程中发生异常状况的相关信息.
    服务器可以用多种格式将与请求相关的活动信息记录在多个日志文件中,不过却只能记录一份错误信息.
    关于活动记录,它是在请求完成被处理后才会对日志内容进行写入.如一个大文件的上传,它是在文件上传完后才写入日志的.而错误信息是在错误发生时就写入.当然,错误的发生也是一瞬间的事.不会出现请求那种长时间处理.
    有一种通用的显示日志的方式:CLF(common log format).格式是:
    "%h %l %u %t \"%r\" %>s %b"
    但随着发展,这种格式的内容不够多,人们又组织了另一种格式:
    "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\""
    它能记住请求的浏览器版本及其他客户端软件的名称与版本等.
    Apache自带有一个标准的日志模块:mod_log_config.另外,Apache 2.0还带有一个额外的模块:mod_logio.它是前者的加强版.而且在http://modules.apache.org的模块注册区还有其它的第三方模块可供使用.
    例如,我的Apache的httpd.conf文件中有如下配置:
    ErrorLog "logs/error.log"
    LogLevel 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>
    在我的Apache安装目录下的logs目录下有两个文件,就是上面配置的error.log和access.log
    上面的配置先定义了Apache错误信息的日志输出.并定义了日志输出的等级.等级有如下几种:
     等级名称 介绍 
    emerg  紧急状况;服务器无法使用 
    alert  必须立刻采取动作 
     crit 危急状况 
     error 出现错误 
     warn 警告 
     notice 正常,但有情况要注意 
     info 普通信息 
     debug 调试级别信息,包括模块运行状态
    设定一个等级后,日志文件中会记录它,以及它以上等级的日志.但不管设定为可值,永远都会记录notice等级的信息.

    日志中格式字符串:
    格式字符串 描述
    %% 百分号(Apache2.0.44或更高的版本)
    %a 远端IP地址
    %A 本机IP地址
    %B 除HTTP头以外传送的字节数
    %b 以CLF格式显示的除HTTP头以外传送的字节数,也就是当没有字节传送时显示'-'而不是0。
    %{Foobar}C 在请求中传送给服务端的cookieFoobar的内容。
    %D 服务器处理本请求所用时间,以微为单位。
    %{FOOBAR}e 环境变量FOOBAR的值
    %f 文件名
    %h 远端主机
    %H 请求使用的协议
    %{Foobar}i 发送到服务器的请求头Foobar:的内容。
    %l 远端登录名(由identd而来,如果支持的话),除非IdentityCheck设为"On",否则将得到一个"-"。
    %m 请求的方法
    %{Foobar}n 来自另一个模块的注解Foobar的内容。
    %{Foobar}o 应答头Foobar:的内容。
    %p 服务器服务于该请求的标准端口。
    %P 为本请求提供服务的子进程的PID。
    %{format}P 服务于该请求的PID或TID(线程ID),format的取值范围为:pidtid(2.0.46及以后版本)以及hextid(需要APR1.2.0及以上版本)
    %q 查询字符串(若存在则由一个"?"引导,否则返回空串)
    %r 请求的第一行
    %s 状态。对于内部重定向的请求,这个状态指的是原始请求的状态,---%>s则指的是最后请求的状态。
    %t 时间,用普通日志时间格式(标准英语格式)
    %{format}t 时间,用strftime(3)指定的格式表示的时间。(默认情况下按本地化格式)
    %T 处理完请求所花时间,以秒为单位。
    %u 远程用户名(根据验证信息而来;如果返回status(%s)为401,可能是假的)
    %U 请求的URL路径,不包含查询字符串。
    %v 对该请求提供服务的标准ServerName
    %V 根据UserCanonicalName指令设定的服务器名称。
    %X 请求完成时的连接状态:
    X= 连接在应答完成前中断。
    += 应答传送完后继续保持连接。
    -= 应答传送完后关闭连接。

    (在1.3以后的版本中,这个指令是%c,但这样就和过去的SSL语法:%{var}c冲突了)

    %I 接收的字节数,包括请求头的数据,并且不能为零。要使用这个指令你必须启用mod_logio模块。
    %O 发送的字节数,包括请求头的数据,并且不能为零。要使用这个指令你必须启用mod_logio模块。

    按照日或小时记录请求日志
    ======================================
    使用CustomLog及rotatelogs(已经在apache的bin目录下包含:rotatelogs.exe.linux下目录可能不同):
    CustomLog "| bin/rotatelogs logs/access_log.%Y-%m-%d 86400" combined
    该配置会将日志输出到另一程序,而非文件.即:rotatelogs.exe.这样,我们就可以在不重启Apache的情况下来生成新的文件.该脚本会在指定时间自动开启新文件,并写入日志.
    rotatelogs第一个参数是日志文件的文件路径和名:logs/access_log.%Y-%m-%d 86400 如果它包含有一个以上的%字符,则会被作为strftime(3)的格式字符串来处理;如上面的格式表示年月晶.否则,一个十位数长的更新时间( 秒为单位)会被附加到文件名上.如:若文件名为foo,则会产生如foo.1234567890的日志文件.而上面的文件则会产生:access_log.2011-04-25这样的文件.
    第二个参数是两次更新时间的间隔(以秒为单位).当系统时间是此参数值的倍数时,它就会产生更新操作.如,一天有86400秒,若设定此境遇早每天午夜就会产生新的日志文件.

    每月第一天更新日志文件
    ======================================
    同样,也是用脚本来处理,不过是使用:rotate-log-monthly.pl来处理.但这个脚本不包括在apache安装包中,我们需要自己下载.格式如下:
    CustomLog "| rotate-log-monthly.pl logs/access_log-%Y-%M" CLF

    记录主机名而非IP地址
    ======================================
    CustomLog "| bin/logresolve -c >> log/access_log.resolved" combined
    logresolve 已经在bin下包括.


    展开全文
  • Hadoop动态调整日志级别

    千次阅读 2013-07-19 17:21:35
    调整NameNode 某个class log level:   打开IE输入:...   第一行用于获取class log level,举例:可以输入"org.apache.hadoop.hdfs.StateChange",然后点击"Get log level" 按钮查看;   第二行
  • log4j基本使用方法

    万次阅读 2012-05-19 16:09:15
    Apache通用日志包是Apache组织的开源项目,负责向开发者提供一系列通用的日志Nooplog接口。用户可以自由地选择和实现通用日志接口。通用日志目前主要支持以下几个日志器: 1.  Log4j:是第三方软件,由Logger、...
  • 做项目被log4j的输出格式化参数搞烦了,索性把API的相关部分大致翻译一下,原文参见http://logging.apache.org/log4j/docs/api/org/apache/log4j/PatternLayout.html     参数 说明 例子 %c 列出logger名字...
  • 开启php错误日志

    千次阅读 2017-04-20 13:14:22
    nginx与apache不一样,在apache中可以直接指定php的错误日志,那样在php执行中的错误信息就直接输入到php的错误日志中,可以方便查询。 在nginx中事情就变成了这样:nginx只对页面的访问做access记录日志。不会有...
  • Log4j配置文件详解

    万次阅读 2007-02-13 15:10:00
    LOG4J详细配置==============@北京普朗技术有限公司 闫金钢基本信息:------------- log4j-1.2.9.jar 配置过程:------------ 1) ...3) 在需要记录日志的java文件、jsp或servlet中添加下面的记录日志代码其他:
  • LOG4J 将debug等日志文件信息同时打印到控制台 如果希望将debug、info等写入日志文件的信息同时打印到控制台, 需要在log4j中配置控制台,并且在为log4j.rootLogger赋值时,最后一个添加控制台信息, 我目前...
  • 做项目被log4j的输出格式化参数搞烦了,索性把API的相关部分大致翻译一下,原文参见http://logging.apache.org/log4j/docs/api/org/apache/log4j/PatternLayout.html<br />   参数说明例子%c列出logger名字空间的...
  • Web中间件之Apache

    千次阅读 2017-12-27 16:05:24
    Apache简介 Apache起初由伊利诺伊大学香槟分校的国家超级电脑应用中心(NCSA)开发。此后,Apache Httpd被 开放源代码团体的成员不断的发展和加强。Apache Http网站服务器拥有牢靠可信的美誉,已经在 全球超半数的...
  • Log4j的使用和怎么在spring中集成log4j

    万次阅读 2007-08-02 14:52:00
    log4j简介简单的说log4j就是帮助开发人员进行日志输出管理的API类库。它最重要的特点就可以配置文件灵活的设置日志信息的优先级、日志信息的输出目的地以及日志信息的输出格式。Log4j除了可以记录程序运行日志信息外...
  • 博客:Tomcat日志设定 http://blog.csdn.net/lk_cool/article/details/4561306一:改变日志输出级别: 方法一:一般在部署Tomcat后,运行久了,catalina.out文件会越来越大,对系统的稳定造成了一定的影响。 可...
  • 对于服务器上面运行的PHP代码,期间的log输出到哪里。 想要去查看对应的log,找到代码无法运行的原因。 【折腾过程】 1.搜: check php log centos check php log 参考: Where does PHP store the error log...
  • kettle5+日志输出到文件

    千次阅读 2019-04-17 15:40:48
    kettle 5+的日志模块重写了,将log4j改成插件,...导致的问题就是在程序中调用kettle时,日志只能打在控制台,无法输出日志文件, 解决办法: 在环境初始化时 KettleEnvironment.init(); KettleClientEnvironment....
  • 处理高并发、高访问之Apache优化

    万次阅读 2017-11-08 22:48:54
    前言:项目100人同时访问,导致访问速度变慢,作为一个没有遇到过这种情况下的辕,在各种查阅资料后,先用删除日志更改日志输出的方法处理后(处理方法:修改Apache日志输出相关配置方法),暂时好缓,后来又出现变...
  • 一、SSH在使用Log4j进行日志管理时常会遇到这个异常: log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader). log4j:WARN Please initialize the log4j system ...
  • 警告:[ shutdown of previous Apache run?warn] pid file /sonicom/apache2/logs/httpd.pid overwritten -- Unclean 故障现象: 在一台服务器上,以wacos用户启动apache进程,启动后立刻使用命令ps –ef | grep ...
1 2 3 4 5 ... 20
收藏数 27,896
精华内容 11,158
关键字:

php 输出apache日志