0 0

为什么tomcat的catalina.log日志中,没有把控制台所有的信息都记录下来5

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

问题补充:
引用

有可能打印的日志是直接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就可以记录到,但如果是编译时异常,就没有办法处理了,有人知道怎么处理吗?

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

谢谢回答,log4j的log4j.xml和tomcat的loging.properties我都检查过了,而且tomcat和log4j日志文件都能正常输出,就是不全,有些异常信息没有输出到日志中去
2011年5月06日 14:43

8个答案 按时间排序 按投票排序

0 0

采纳的答案

我也碰到这样的问题了,由于项目中处理异常的代码比较多,且以前没有用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
这个文件中,但是控制台就不输出了,这就是他的缺点,但是如果是在用户环境下部署的话,控制台输出也不重要吧
还有一个缺点,貌似是不支持中文

希望可以帮到你

2011年5月06日 17:49
0 0

你要配置login4j的
如果你使用system.out.println();它只会打印到控制台,不会输出到配置文件中

2011年5月06日 17:20
0 0

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

2011年5月06日 16:59
0 0

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

2011年5月06日 15:53
0 0

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

2011年5月06日 15:24
0 0

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

2011年5月06日 15:11
0 0

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

2011年5月06日 14:52
0 0

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

2011年5月06日 14:50

相关推荐

Global site tag (gtag.js) - Google Analytics