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

如题,控制台报错,打印出了异常信息,但是到logs目录下打开catalina.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
这个文件中,但是控制台就不输出了,这就是他的缺点,但是如果是在用户环境下部署的话,控制台输出也不重要吧
还有一个缺点,貌似是不支持中文 :(

希望可以帮到你

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

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

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

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

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

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

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