Apache的日志能够详细记录网站的每一个请求,供管理员参考,特别是在网站出现问题的时候,Apache日志文件能提供很多有用的信息,通过分析日志文件,找出网站问题所在。
然而Apache默认的日志格式可能并不能满足每一个人的胃口,有时候我们需要定制Apache日志的格式和内容,比如增加我们感兴趣的内容,删掉我们不感兴趣的内容,或者是改变日志文件记录的格式等等。
在Apache的httpd.conf文件中,通过LogFormat和CustomLog指令可以实现自定义日志文件格式和内容的目的。
LogFormat和CustomLog的格式化参数是一个字符串,这个字符串会在每次请求发生的时候,被记录到日志文件中去。它可以包含被原
样写入日志的文本字符串以及控制字符如:“\t”、“\n”,
其他的特殊字符均可通过反斜杠转义。请求本身的情况将通过在格式字符串中放置各种“%”转义的方式来记录。
下表列出了Apache日志格式字符串的含义
<!-- <br />
#logstyle tr td{<br />
border: 1px solid rgb(212, 239, 247);<br />
width:98%;<br />
}<br />
#logstyle , #logstyle table{<br />
width:98%;<br />
}<br />
-->
%%
|
百分号(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
的取值范围为:pid
和tid
(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
|
根据UseCanonicalName
指令设定的服务器名称。 |
%X
|
请求完成时的连接状态:
X
= |
连接在应答完成前中断。 |
+
= |
应答传送完后继续保持连接。 |
-
= |
应答传送完后关闭连接。 |
(在1.3以后的版本中,这个指令是%c
,但这样就和过去的SSL语法:%{var}c
冲突了)
|
%I
|
接收的字节数,包括请求头的数据,并且不能为零。要使用这个指令你必须启用mod_logio
模块。 |
%O
|
发送的字节数,包括请求头的数据,并且不能为零。要使用这个指令你必须启用mod_logio
模块。 |
一些常见的格式串:
通用日志格式(CLF)
“%h %l %u %t \”%r\” %>s %b”
带虚拟主机的通用日志格式
“%v %h %l %u %t \”%r\” %>s %b”
NCSA扩展/组合日志格式
“%h %l %u %t \”%r\” %>s %b \”%{Referer}i\” \”%{User-agent}i\”"
Referer日志格式
“%{Referer}i -> %U”
Agent(Browser)日志格式
“%{User-agent}i”
分享到:
相关推荐
当我们面对特定项目需求,比如需要自定义日志文件名和日志输出格式时,Log4j同样提供了相应的解决方案。 首先,让我们深入理解如何自定义日志文件名。默认情况下,Log4j的日志文件名通常是固定的或者基于时间戳生成...
比如,如果日志格式被自定义过,可能需要使用-F选项来定义字段分隔符,或使用print选项来指定特定的列。 在处理日志文件时,需要注意Linux环境下的命令执行效率和文本处理能力。随着服务器负载的增加,处理大量日志...
Apache日志分析系统免费版V1.6是一款专为管理和解析Apache服务器日志设计的工具。这个系统能够帮助用户深入理解网站的访问情况,提供详细的数据统计和分析,包括但不限于访问量、用户行为、热门页面、来源IP、浏览器...
Apache日志服务器配置在Debian系统中是一项关键任务,它涉及到日志的集中管理和分析,这对于监控、故障排查以及安全审计至关重要。以下是配置Debian下的Apache日志服务器的详细步骤。 首先,我们需要在服务器端安装...
### 查看Apache日志 #### 知识点一:Apache简介 Apache是一款广泛使用的Web服务器软件,支持多种操作系统,如Windows、Linux等。它通过高度模块化的结构来提供灵活的功能扩展性,支持动态加载模块,这使得Apache...
使用`CustomLog`和`ErrorLog`指令,可以指定自定义的日志格式和位置。 对于复杂的问题,可能需要结合其他工具,如`grep`、`awk`或日志分析软件,对日志进行更深入的分析。例如,找出特定时间段内出现的错误频率,...
标题 "基于Hadoop平台的Pig语言对Apache日志系统的分析" 涉及到的主要知识点包括Hadoop、Pig语言以及Apache服务器日志的处理。以下是对这些关键概念的详细解释: 1. Hadoop平台: Hadoop是Apache软件基金会开发的...
1. **数据格式**:确保日志数据格式适合InfluxDB的写入要求,通常采用JSON格式,包含时间戳、度量名、字段和标签等信息。 2. **性能优化**:合理设置Kafka和InfluxDB的配置参数,如分区数、副本数、批量写入大小等,...
2. **日志解析**:按照CLF或自定义格式解析日志项,提取关键信息。 3. **地理定位**:使用IP库(如MaxMind)将IP地址转换为地理位置信息。 4. **统计分析**: - 用户访问次数:根据IP地址计数,找出访问最频繁的...
日志格式通常由管理员自定义,但CLF的标准格式如下: ``` %h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i" ``` - `%h`:远程主机名或IP地址。 - `%l`:远程登录用户的标识符,未登录时通常为空。 - `%u`...
通过对日志级别的精细控制、灵活的日志输出方式选择以及丰富的日志格式自定义功能,大大提升了软件系统的运维效率。了解并掌握这些工具的使用方法,对于提高软件项目的质量有着不可忽视的作用。
高级技术中还包括定制日志格式,通过修改Apache配置文件(如httpd.conf)中的LogFormat指令,可以根据需要自定义日志内容。此外,还可以配置日志切割,确保日志文件大小不会过大,便于管理和分析。 总之,Apache...
Apache允许自定义日志格式,通过`CustomLog`指令配置。例如,`CustomLog logs/access_log combined`将使用"combined"格式记录访问日志,包含客户端IP、用户代理、请求方法、URL、状态码等信息。 4. **日志分割** ...
Log4j是一款广泛使用的日志框架,它允许开发者自定义日志输出的方式,包括输出路径、日志级别和格式。在某些情况下,可能需要将不同类型的日志输出到不同的文件中,以方便管理和分析。本文将详细讲解如何使用Log4j...
Log4Cxx提供了多种布局,如SimpleLayout、PatternLayout、TTCCLayout等,它们可以定制日志条目的格式,如时间戳、线程名、日志级别、消息内容等。 **4. Filters** Filters允许基于特定条件过滤日志事件,例如,只...
2. **自定义日志输出格式**:默认情况下,Log4j会打印出时间戳、日志级别、logger名和日志消息。我们可以通过自定义`Layout`实现,例如创建一个XML布局或者JSON布局,使得日志输出更符合项目需求。 3. **自定义日志...
错误日志和访问日志文件为系统管理员提供了有用的信息,比如,为 Web 服务器排障,保护系统不受各种各样的恶意活动侵犯,或者只是进行各种各样的分析以监控 HTTP 服务器。根据你 Web 服务器配置...自定义的错误日志 要
2. **修改Apache日志格式** Apache默认的日志格式并不支持直接记录来自HTTP头部的信息,因此我们需要自定义日志格式来捕获`Cdn-Src-Ip`字段。具体步骤如下: ```plaintext LogFormat "%{Cdn-Src-Ip}i %l %u %t ...
另外,java.util.logging生成的日志格式与项目中使用Log4j记录的日志格式不一致,这会导致在后期日志分析时出现格式不统一的问题。 为了改善这些问题,Tomcat提供了一种机制,允许我们通过配置和替换特定的jar包来...