转 让你的Tomcat5.5.*以上的版本如同Tomcat5.0.27版本一样,记录应用程序的日志

Tomcat 爆出高危漏洞!可导致网站、数据泄露!附解决方案 漏洞背景 安全公告编号:CNTA-2020-0004 2020年02月20日, 360CERT 监测发现 国家信息安全漏洞共享平台(CNVD) 收录了 CNVD-2020-10487 Apache Tomcat文件包含漏洞 CNVD-2020-10487/CVE-2020-1938是文件包含漏洞,攻击者可利用该高危漏洞读取或包含 Tomcat 上所有 webapp 目录下的任意文件,如:we... 阅读详情

用Spring、Hibernate、Struts之类的开发框架时,往往应用在Web Application应用中。在应用中我们常常并不使用、起码在最开始开发时很少使用非常合理的异常也不用catch(Exception) catch(Throwable)之类的,因为稍有些矫枉过正之嫌。

那么界面(web页面)往往提示你产生了某些异常之流,或许已经足够供你解决问题;或许你还想知道的更详细;更甚是提示的错误让你丈二和尚摸不着头脑,怎么办呢?别忘记:Tomcat在logs目录中给你准备了十分充足的信息记录,有些时候真的让你欣喜不已。在我blog文章中已经详述并证实了这个事实。(http://www.blogjava.net/crazycy/archive/2006/07/07/57214.html)

既然Tomcat的日志功能这么强大,我突然弃用了Tomcat5.0.*系列(5.0.*系列的好处就是:既可以支持JDK1.4也可以支持JDK5.0。但是对5.0的支持需要配置,参考我blog文章http://www.blogjava.net/crazycy/archive/2006/05/31/49225.html  和http://www.blogjava.net/crazycy/archive/2006/06/03/50150.aspx)。

改用了Tomcat5.5之后,奇怪了,日志空空。在我的项目中我用的是改装的Tomcat5.0.28(JDK1.5.0_07),我的一个朋友用的是Tomcat5.5.12。在他遇到问题:Servlet action is not available  (http://www.blogjava.net/crazycy/archive/2006/07/07/57214.html 第1,2点)时,我陈述了我的解决方法,他似乎不很能接受,因而我让他把Tomcat的最新类似localhost.2006-07-16.log的文件发给我,结果我也傻眼了,空空如也,失去十足的论据,虽然确实解决了问题。

说了这么多无非想阐述2点:
1 Tomcat的log很有用,建议出了界面提示的不足以解决问题的错误时常察看;
2 Tomcat5.5版本以上的没有原先的log功能

那如何解决呢:apache给出了明确的方案:原来是为了给开发者更多的个人癖好的选择;比较人性化;但是委屈了我们这些新手;从这个事实也说明察看源网站声明的重要性。具体位置:http://tomcat.apache.org/tomcat-5.5-doc/logging.html
在这里引用一下:

Logging in Tomcat

Printer Friendly Version
print-friendly
version
Introduction

Tomcat 5.5 uses Commons Logging throughout its internal code allowing the developer to choose a logging configuration that suits their needs, e.g java.util.logging or Log4J. Commons Logging provides Tomcat the ability to log hierarchially across various log levels without needing to rely on a particular logging implementation.

An important consequence for Tomcat 5.5 is that the <Logger> element found in previous versions to create a localhost_log is no longer a valid nested element of <Context>. Instead, the default Tomcat configuration will use java.util.logging. If the developer wishes to collect detailed internal Tomcat logging (i.e what is happening within the Tomcat engine), then they should configure a logging system such as java.util.logging or log4j as detailed next.

log4j

Tomcat 5.5 has done away with localhost_log which you may be familiar with as the runtime exception/stack trace log. These types of error are usually thrown by uncaught exceptions, but are still valuable to the developer. They can now be found in the stdout log.

If you need to setup cross-context detailed logging from within Tomcat's code, then you can use a simple log4j configuration. Note that this logging van be very verbose depending on the log level you chose to use. Note also that a log4j logging configuration is not going to produce stack trace type logging: those stack traces are output to stdout as discussed above.

Follow the following steps to setup a file named tomcat.log that has internal Tomcat logging output to it:

 

  1. Create a file called log4j.properties with the following content and save it into common/classes.
                log4j.rootLogger=debug, R 
                log4j.appender.R=org.apache.log4j.RollingFileAppender 
                log4j.appender.R.File=${catalina.home}/logs/tomcat.log 
                log4j.appender.R.MaxFileSize=10MB 
                log4j.appender.R.MaxBackupIndex=10 
                log4j.appender.R.layout=org.apache.log4j.PatternLayout 
                log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n 
                log4j.logger.org.apache.catalina=DEBUG, R
              
  2. Download Log4J (v1.2 or later) and place the log4j jar in $CATALINA_HOME/common/lib.
  3. Download Commons Logging and place the commons-logging.jar (not commons-logging-api.jar) in $CATALINA_HOME/common/lib with the log4j jar.
  4. Start Tomcat

 

This log4j configuration sets up a file called tomcat.log in your Tomcat logs folder with a maximum file size of 10MB and up to 10 backups. DEBUG level is specified which will result in the most verbose output from Tomcat.

You can (and should) be more picky about which packages to include in the logging. Tomcat 5.5 uses defines loggers by Engine and Host names. For example, for a default Catalina localhost log, add this to the end of the log4j.properties above. Note that there are known issues with using this naming convention (with square brackets) in log4j XML based configuration files, so we recommend you use a properties file as described until a future version of log4j allows this convention.

  • log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost]=DEBUG, R
  • log4j.logger.org.apache.catalina.core=DEBUG, R
  • log4j.logger.org.apache.catalina.session=DEBUG, R
Be warned a level of DEBUG will produce megabytes of logging and slow startup of Tomcat. This level should be used sparingly when debugging of internal Tomcat operations is required.

 

Your web applications should certainly use their own log4j configuration. This is valid with the above configuration. You would place a similar log4j.properties file in your web application's WEB-INF/classes folder, and log4j1.2.8.jar into WEB-INF/lib. Then specify your package level logging. This is a basic setup of log4j which does *not* require Commons-Logging, and you should consult the log4j documentation for more options. This page is intended only as a bootstrapping guide.


我用的依然是Log 4J,几点建议就是:
1
log4j.rootLogger=debug, R
log4j.logger.org.apache.catalina=DEBUG, R
中的debug, DEBUG根据你的记录级别调整,我喜欢用error ERROR
2
log4j.appender.R.File=${catalina.home}/logs/tomcat.log
这个地方不需要人为修改
3
建议在系统环境变量增加:CATALINA_HOME一项配置以下Tomcat的安装目录


最后就是希望遇到这个问题的朋友,能及时的看到这个文章或者从Tomcat网站上得到帮助,尽量减少这些问题上消耗过多时间和精力。把苦闷留给最开始遇到问题的人吧,然后大家充分share之。

 
ELK + filebeat 7.4.2 采集tomcat日志-使用记录 简单介绍 ELK,日志记录管理全家桶,E:elasticsearch,L:logstash,K:kibana,本文除了部署使用ELK,还会加上filebeat和elasticsearch-head插件。 ElasticSearch是一个基于Lucenc的搜索服务器,是用来搜索日志用的 PS.补充一点,需要java11噢~ logstash是用来接收日志,并且把日志输出到elasticsea... 阅读详情

相关推荐

jakarta-tomcat-5.0.16

jakarta-tomcat-5.0.16.exejakarta-tomcat-5.0.16.exejakarta-tomcat-5.0.16.exe

Tomcat 5.5 的下载和安装

Tomcat 5.5 的下载和安装   1 Tomcat 5.5 的下载地址为 http://tomcat.apache.org/download-55.cgi. 我们选择zip压缩的格式。 2 点击后出现下载页面,我们选择保存 3 选择自己喜欢的保存下载文件的目录。点击[保存] 4如果下载的文件有问题,可以在前面选择其他的下载站点,比如Apache的backup...

weixin_34248705的博客 2546

tomcat5.0.

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。目前最新版本是7.0。

Tomcat 用户指南(中文版)

Tomcat中文使用手册    Tomcat中文使用手册 Apache Tomcat 5.5 Servlet/JSP 容器链接 文档首页 中文用户论坛 常见问题 用户手册 1) 介绍 2) 安装 3) 第一个web应用 4) 部署 5) 管理 6) 权限管理 - 域(Realms) 7) 安全管理器 8) JNDI 资源 9) JDBC 数据源

yinghuadeyanlei的专栏 3933

vscode中使用PlatformIO创建工程加载慢

解决使用VSCODE+PlatformIO中,第一次新建工程一直加载的问题

Reasally的博客 4980

华为iTrustee实战:5分钟搞定TrustZone环境搭建(附BoostKit配置技巧)

本文提供了一份华为iTrustee与ARM TrustZone环境的5分钟快速搭建实战指南。详细介绍了在TaiShan服务器上利用鲲鹏BoostKit套件部署可信执行环境(TEE)的完整流程,包括环境检查、驱动安装、首个可信应用(TA)的编译与运行,并分享了关键的BoostKit配置技巧与深度排错方法,助力开发者快速为业务注入硬件级安全能力。

yoga7的博客 968

Linux之tomcat日志乱码排查记录

tomcat服务日志中文乱码可能原因有三个地方conf/server.xml、conf/logging.properties和JDK的JAVA_OPTS参数设置编码错误。

月生的静心苑 4504

概率论 知识图谱 + 实战案例解析

本文通过构建概率论知识图谱,系统梳理了从随机试验、概率、条件概率到随机变量与分布的核心概念及其内在联系。结合朴素贝叶斯分类器和蒙特卡洛模拟等实战案例,深入解析了条件概率、独立性及大数定律等理论如何应用于机器学习与实际问题求解,旨在帮助读者建立结构化思维,将理论有效转化为解决实际问题的能力。

weixin_29051193的博客 268

linux jdk1.7 tomcat mysql_RedHat Linux 下安装JDK 1.7+MySQL 5.0+Tomcat 7.0.27过程

RedHat Linux 下安装JDK 1.7+MySQL 5.0+Tomcat 7.0.27过程记录:tar -zxvf jdk-7u3-linux-i586.tar.gz /解压gz文件rpm -q xxx.rpm 查询软件包是否已经安装mv new.c new0.c //移动文件文件夹并重命名rm -rf tomcat7 //删除文件夹及其下面的文件和目录//安装jdksudo su ...

weixin_33419842的博客 153

[RK3399][Android7.1] 调试笔记 --- 编译GSL5680 touch提示错误

Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83 现象: 之前在rk3288平台上使用过GSL5680的Touch,现在移植过来一直报如下错误: make[1]: `include/generated/vdso-offsets.h' is up to date. CHK include/generated/compi...

Kris Fei's blog 1056

基于 STM32 的手持式安检金属探测器设计与实现

【代码】基于 STM32 的手持式安检金属探测器设计与实现。

weixin_42300449的博客 900

在 Linux 系统中查看 Tomcat 日志

在 Linux 系统中查看 Tomcat 日志,主要通过命令行工具定位日志文件并分析内容。

码觉客的博客 3731

电磁场仿真软件:Sonnet_(1).Sonnet软件概述

根据特定需求自定义仿真流程,如多频率点仿真、多边界条件仿真等。

kkchenjj的博客 1452

tomcat日志切割

配置切割设置 在/etc/logrotate.d/ 目录下新建一个文件,命名随意。 mkdir /etc/logrotate.d/tomcat 配置切割 vim /etc/logrotate.d/tomcat /home/tomcat9.0.33/logs/catalina.out{ copytruncate daily rotate 7 compress dateext missingok size 100M } 各个配置的具体含义: daily 指定转储周期为每天 rotate 15 指定日志.

weixin_43135696的博客 750

【华为OD机试真题】6、数组去重和排序 | 机试真题+思路参考+代码解析(C++、Java、Py、C语言、JS)

题目描述 >给定一个乱序的数组,删除所有的重复元素,使得每个元素只出现一次,并且按照出现的次数从高到低进行排序,相同出现次数按照第一次出现顺序进行先后排序

KJ.JK 3890

SMART200如何实现多次调用子程序带定时器功能

1、西门子200PLC的子程序由于很多限制条件,如果希望建立一个可以多次调用的子程序,那么这个子程序里是不能含有定时器指令的,所以我们只能退而求其次了。建议将沿指令(上升沿、下降沿)放在多次调用子程序的外面。 2、可以提供不同的时基,提供不同时间的定时 3、实现秒定时 5、子程序内部: STL代码: 1、时基信号由外部提供、 可以提供不同的时基信号 2、实现循环定时开关 LD #Start:L0....

RXXW_Dor的博客 1万+

Tomcat的日志

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33805557的博客 130

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Linux记录22-4.64 tomcat日志查错 和 日志切割

/usr/local/tomcat/logs 里有很多日志文件 host-manager.log 和 manager.log 是之前操作的管理台的日志 localhost_access_log.txt 是访问日志,记录客户端访问网站的情况。这个其实可以在Nginx代理上记录。 localhost.log 是应用初始化未处理的异常后被tomcat捕获的...

桑 216

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Tomcat日志

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33767813的博客 183

tomcat - catalina.out 日志过大处理方法

omcat - catalina.out 日志过大处理方法 解决方案: 1、修改tomcat的日志配置,配置输出日志级别 2、修改工程的日志配置:输出在控制台的级别 3、对catalina.out 启动定时清空 改变输出日志级别 - 试运行 修改conf/logging.properties日志配置文件来屏蔽掉这部分的日志信息。 将level级别设置成WARNING就可以大量减少日志...

GoodIdea 6442

如何配置和使用Tomcat访问日志

Access Log Valve用来创建日志文件,格式与标准的web server日志文件相同。可以使用用日志分析工具对日志进行分析,跟踪页面点击次数、用户会话的活动等。Access Log Valve的很多配置和行为特性与File Logger相同,包括每晚午夜自动切换日志文件。Access Log Valve可以和任何Catalina容器关联,记录该容器处理的所有请求。 例子如下: ...

canofy 131

Tomcat catalina.out 日志自动分隔

在Tomcat中,catalina.out文件通常包含Tomcat的日志输出。如果你想按日期分割这个日志文件,你可以使用日志切割工具来实现。常见的做法是使用logrotate工具来对日志文件进行分割和管理。:确保你的系统上安装了logrotate工具。:创建一个logrotate的配置文件,告诉它如何处理catalina.out文件。:保存配置文件并退出编辑器。这将显示logrotate的详细输出,可以查看是否有任何错误或警告。logrotate通常作为一个定时任务在系统中运行,定期检查并轮换日志文件。

qq_18945257的博客 3134

Dropwizard 版本发布记录与技术演进:从 0.1.0 到 5.0.x 的完整版本地图

本文以仓库中的发布记录文档 [release-notes.rst](https://link.gitcode.com/i/a3fc7eb9298eccd91c47ac1926c590a2) 为核心,系统梳理 Dropwizard 自 2011 年 12 月首个公开版本至 5.0.x 系列的版本演进脉络:每个大版本的里程碑特性、安全补丁发布节奏、发布流程规范,以及 2.0/3.0/4.0/5.0 各

gitblog_01196的博客 276

logrotate切割Tomcat日志catalina.out

背景 需要Flume采集Tomcat的日志catalina.out,就需要按天切分日志,过程中遇到一些坑,记录一下,供遇到相同问题的同学参考。 环境 CentOS 6.5(非root权限)、Tomcat 6.0.35、logrotate 3.15.1(由于后面提到的特殊需求,后来自己安装的logrotate版本,没有使用系统集成的版本) 方案 前期考虑过的几种方案: logrotate \ cr...

zhoutianju的博客 615

Linux 下 Tomcat日志切割

logrotate是个强大的系统软件,它对日志文件有着一套完整的操作模式,譬如:转储、邮件和压缩等,并且默认logrotate加到cron(/etc/cron.daily/logrotate)作为每日任务执行。自动有了logrotate 1.配置logrotate对catalina.out日志切割脚本 shell&gt; vim /etc/logrotate.d/tomca...

qq_34769161的博客 355

从0开始,手搓Tomcat

Tomcat 是一款开源的、轻量级的 Web 服务器,它不仅能够提供 HTTP 服务,还能够运行 Java Servlet 和 JavaServer Pages(JSP)。对于许多开发者来说,理解 Tomcat 的目录结构以及如何在该结构中组织应用,往往是入门的第一步。在一个实现具体操作的Servlet类中,具有如下图的继承关系是所有 Servlet 的基本接口。任何自定义的 Servlet 都必须实现这个接口或者继承一个实现了它的类。

m0_75260099的博客 3074
上一篇: 团队开发利器CVS培训基础讲义
下一篇: RedHat Linux AS3.0 配置 Resin3.0.14
eyejava
博客等级 码龄20年 11粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值