http://www.iteye.com/problems/64642

为什么tomcat的catalina.log日志中,没有把控制台所有的信息都记录下来
1、如题,控制台报错,打印出了异常信息,但是到logs目录下打开catalina.log文件查看却没有记录,这是什么原因
而且以前我见过日志里出现过异常信息,是同一个tomcat,也是同样的环境,没有修改过配置

2、有可能打印的日志是直接SYSTEM.OUT.PRINTLN,所以不打印到.LOG文件上,
还有就是TOMCAT使用的LOG与你自己工程里使用的LOG不是同一个JAR包,你工程里不应该有LOG的相关JAR包了

谢谢你们的回答,我没有说清楚,在我的应用中,使用了log4j来记录日志,而tomcat是使用的common-log.jar来记录日志的,这两个肯定记录不到一块
异常堆栈信息是直接调用e.printStackTrace打印出来的,这样的异常信息在catalina.log和log4j的日志信息里都没有出现,log4j可以理解为什么没有,因为毕竟这个方法打印堆栈信息没有使用log4j来记录,catalina.log中也没有出现,他没有对堆栈信息的记录吗?对runtime异常还可以处理,异常不进行捕获,用log4j就可以记录到,但如果是编译时异常,就没有办法处理了,有人知道怎么处理吗?

今天刚遇到这个问题,我tomcat下的logs文件夹直接是空的,没有日志,原来在工程log4j.properties文件中定义了日志的写入路径:
log4j.appender.A2.File=/beian/logs/beian.log
前面目录就是tomcat的安装目录

我也碰到这样的问题了,由于项目中处理异常的代码比较多,且以前没有用log4j记录,如果修改的话基本上每一个java文件都要修改成log.error("",e)这样的方式才能记录,我采用了这样的方式来记录,虽然不太好,但是应该可以应付过去
把tomcat/bin目录下的startup.bat文件中的
call "%EXECUTABLE%" start "CMD_LINE_ARGS"
修改为
call "%EXECUTABLE%" run "CMD_LINE_ARGS"
再把catalina.bat文件中最后最长的几行修改一下(都是以%ACTION%结尾的),在后边加上:
>> %CATALINA_BASE%\logs\xxx_%DATE:~0,10%.log
(注:%CATALINA_BASE%是tomcat的根目录,%DATE:~0,10%是系统时间截取,有的系统可能不是这样截取的,你可以用echo %DATE%命令看一下结果,0是起始位置,10时长度,根据结果来截取一下)
添加这行的目的是让tomcat把控制台的信息都输出到
%CATALINA_BASE%\logs\xxx_%DATE:~0,10%.log
这个文件中,但是控制台就不输出了,这就是他的缺点,但是如果是在用户环境下部署的话,控制台输出也不重要吧
还有一个缺点,貌似是不支持中文 你要配置login4j的
如果你使用system.out.println();它只会打印到控制台,不会输出到配置文件中


try{
  ............
} catch (Exception e){
  log.error(".......", e);
}
你代码中把错误写进日志了嘛?


还有一个可能是你的日志输出级别的限制,造成不能完全输出异常:
[url]
http://blog.ccidnet.com/home.php?mod=space&uid=42621&do=blog&id=1030540
[/url]


今天刚遇到这个问题,我tomcat下的logs文件夹直接是空的,没有日志,原来在工程log4j.properties文件中定义了日志的写入路径:
log4j.appender.A2.File=/beian/logs/beian.log
前面目录就是tomcat的安装目录


也有可能是工程里包含了日志,比如log4j啥的,看看log4j.properties文件里面是不是定义了log写在哪个文件里面了


是不是日志满了,换了文件了,你看下是不是还有很多catalina开头的文件


有可能打印的日志是直接SYSTEM.OUT.PRINTLN,所以不打印到.LOG文件上,
还有就是TOMCAT使用的LOG与你自己工程里使用的LOG不是同一个JAR包,你工程里不应该有LOG的相关JAR包了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值