Apache配置文件中,需要关心的和日志相关配置有两个:
$ CustomLog /www/logs/access_log common
$ ErrorLog /www/logs/error_log
CustomLog用来指示Apache的访问日志存放的位置(这里保存在/www/logs/access_log中)和格式(这里为common);ErrorLog用来指示Apache错误信息日志存放的位置。
对于不配置虚拟主机的服务器来说,只需直接在httpd.conf中查找CustomLog配置进行修改即可。
接下来遇到的一个问题就是日志文件的轮循。因为日志一直在增大,如果不进行处理那么日志文件越来越大,就会影响Web服务器运行效率、速率,还可能耗尽服务器硬盘空间,导致服务器无法正常运行。另外,如果单个日志文件大于操作系统单文件尺寸的的限制,从而会进一步影响Web服务的运行。而且,日志文件如果不进行轮循,也不便于日志统计分析程序的运行。因为日志统计分析都是以天为单位进行统计分析的,跨越很长时间日志会使得统计分析程序运行特别慢。因此这里就需要对Web服务器日志文件每天进行轮循。
Web服务器日志轮循
Web服务器日志轮循比较好的方式有三种:
第一种方法是利用Linux系统自身的日志文件轮循机制logrotate。
第二种方法是利用Apache自带的日志轮循程序rotatelogs。
第三种是使用在Apache的FAQ中推荐发展已经比较成熟的一个日志轮循工具 cronolog。
对于大型的Web服务来说,往往使用实用负载均衡技术提高Web站点服务能力,这样后台有多个服务器提供Web服务,大大方便了服务的分布规划和扩展性。如果有多个服务器的分布需要对日志进行合并,统一进行统计分析。因此为了保证统计的精确性,需要严格按照每天的时段来自动生成日志。
用rotatelogs实现日志轮循
Apache 提供了不把日志直接写入文件,而是通过管道发送给另外一个程序的能力。这样就大大加强了对日志进行处理的能力。这个通过管道得到的程序可以是任何程序,如日志分析、压缩日志等。要实现将日志写到管道的操作,只需要将配置中日志文件部分的内容替换为“|程序名”即可,例如:
# compressed logs
$ CustomLog "|/usr/bin/gzip -c >> /var/log/access_log.gz" common
这样就可以使用Apache自带的轮循工具rotatelogs来对日志文件进行轮循。rotatelogs基本是按时间或大小来控制日志的。
$ CustomLog "|/www/bin/rotatelogs /www/logs/secfocus/access_log 86400" common
上面的示例中,Apache访问日志被发送给程序rotatelogs;rotatelogs将日志写入 /www/logs/secfocus/access_log,并每隔86400秒(1天)对日志进行一次轮循。轮循以后的文件名为 /www/logs/secfocus/access_log.nnn,这里nnn是开始记录日志的时间。因此,为了将日志按天对齐需要在凌晨00:00 启动服务,使得每天轮循得到的日志刚好是完整一天的日志,以提供给访问统计分析程序进行处理。如果是00:00开始生成新的日志,那么轮循得到的日志就是
access_log.0000。
另有网文这样做:
#ErrorLog "|bin/rotatelogs.exe logs/error-%y%m%d.log 86400 480"
#CustomLog "|bin/rotatelogs.exe logs/access-%y%m%d.log 86400 480" common
---------------tomcat 日志设置---------------
访问日志设置:注释不要设置,加上<!-- -->在server.xml里的<host>标签下加上<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs" prefix="localhost_access_log." suffix=".txt"
pattern="common" resolveHosts="false"/>
就可以了,下面咱们逐一分析各个参数。
className
官方文档上说了This MUST be set toorg.apache.catalina.valves.AccessLogValveto use the default access log valve. &<60; 想配置访问日志?这就必须得写成这样。
directory
这个东西是日志文件放置的目录,在tomcat下面有个logs文件夹,那里面是专门放置日志文件的,当然你也可以修改,我就给改成了D:\
prefix
这个是日志文件的名称前缀,我的日志名称为localhost_access_log.2007-09-22.txt,前面的前缀就是这个localhost_access_log
suffix
这就是后缀名啦,可以改成别的
pattern
这个是最主要的参数了,具体的咱们下面讲,这个参数的内容比较丰富。
resolveHosts
如果这个值是true的话,tomcat会将这个服务器IP地址通过DNS转换为主机名,如果是false,就直接写服务器IP地址啦
还有一些参数:
rotatable
默认为true,默认的设置使得你的tomcat生成的文件命为prefix(前缀)+.+时间(一般是按天算)+.+suffix(后缀),参照我的日志名就知道了:localhost_access_log.2007-09-22.txt
使用这个需要谨慎,因为你将其设置为false的话,tomcat会忽略时间,不会新生成文件,最后导致你的文件超级大,这样生成的文件名就是:localhost_access_log.txt
condition
这个参数不太实用,可以设置任何值,比如咱们设置成condition="tkq",那么只有当ServletRequest.getAttribute("tkq")为空的时候,才会被记录下来
fileDateFormat
最后的一个参数,很明白,这就是时间格式嘛,但是这个时间格式是针对日志文件起作用的,还记得咱们生成的日志文件全名么:localhost_access_log.2007-09-22.txt,这里面的2007-09-22就是这么来的,如果你想让tomcat每小时生成一个日志文件,也很简单,将这个值设置为:fileDateFormat="yyyy-MM-dd.HH",当然也可以按分钟生成什么的,自己改改吧
相关推荐
Tomcat 是由 Apache 开发的一个 Servlet 容器,实现了对 Servlet 和 JSP 的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全平台。
Apache Tomcat 8.5.30 发布了。Apache Tomcat 8.5.x 旨在替换 8.0.x,并包含 Tomcat 9.0.x 将有新功能。 最小的 Java 版本和实现的规范版本保持不变。 与 8.5.29 相比,显着的变化包括:将对 maxDays 属性的支持添加...
apache tomcat6.0.29
apache-tomcat-8.5.12.rar解压即可使用,免安装绿色版 稳定版
最新版tomcat8.0,1.支持servlet3.1, jsp 2.3, el表达式3.0 and Java WebSocket 1.0. 2.默认http与ajp请求实现non-blocking技术,即NIO技术。 3.多个应用发布的时候可以先打成jar包,然后打成一个总的war发布。(这...
apache-tomcat软件,windows-64版本 日志可查看catalina.out,如下: at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter....
TOMCAT昨天突然自己宕掉服务了,怎么重起都不行,后来查看logs中catalina.out 日志发现如下错误 INFO: The Apache Tomcat Native library which allows optimal performance in production environments was not ...
wrox公司最新tomcat6书籍,2007年出版,21章经典内容,涉及tomcat6的安装、配置、高级特性,Tomcat与Apache、IIS协作,涵盖JDBC、JMX,tomcat集群与嵌入、日志、性能优化等,两个附录Tomcat与IDE、Apache Ant。...
根据Mark Thomas,Tomcat 7委员会的经理的说法,Tomcat 7最显著的三个特征是Servlet 3.0,内存检测泄露和增强的安全特性。 Tomcat 7的例子程序中,包含了Eclipse的工程文件和Ant的构建文件,以方便去构建war文件...
tomcat这个版本比较稳定,所以传上来供大家使用,亲测可用
为了测试方便,仅仅局限与tomcat控制台打印的错误信息是非常困难的。为了更容易找到出错的位置,apache提供了日志包,下载后放在tomcat的lib下,引入log4j就能生成日志文件了。
Linux tomcat下catalina.out日志文件分割 前言: tomcat默认使用Java.util.logging记录日志,默认只记录tomcat的日志,不记录应用的日志。tomcat支持采用log4j进行日志记录,配置方法如下: 1.更新最新的tomcat_juli...
Tomcat的目录结构: ... 存放tomcat运行时所生成的日志文件。 webapps: 存放已经部署到tomcat服务器中的 服务端项目。 work: 存放tomcat运行时生成的临时文件。 案例 访问tomcat中的静态html网页资源: ...
官网tomcat8,32位,免安装,解压之后即可使用。
NULL 博文链接:https://ch-dj.iteye.com/blog/1926314
最新的中间件部署工具,tomcat8.0版本,已设置好编码的格式,能够处理日志乱码
使用JMX和管理器Web应用程序完成服务器监视 可扩展性和可靠性增强 改进了Taglibs的处理,包括高级池和标签插件 改进的平台集成,与本机Windows和Unix包装器 使用JMX嵌入 增强的安全管理器支持 集成会话聚类 扩展文档...
问题1:TOMCAT下载文件出错:org.apache.catalina.connector.ClientAbortException. 问题2:TOMCAT记录接收数据大小、发送数据大小和请求处理时间
TOMCAT 7新特性 1 使用随机数去防止跨站脚本攻击。 2 改变了安全认证中的jessionid... 根据Mark Thomas,Tomcat 7委员会的经理的说法,Tomcat 7最显著的三个特征是Servlet 3.0,内存检测泄露和增强的安全特性。
wrox公司最新tomcat6书籍,2007年出版,21章经典内容,涉及tomcat6的安装、配置、高级特性,Tomcat与Apache、IIS协作,涵盖JDBC、JMX,tomcat集群与嵌入、日志、性能优化等,两个附录Tomcat与IDE、Apache Ant。