今早做了一个项目的struts和Spring整合,导入jar包,配置好配置文件后,启动tomcat进行测试;
结果报错:
2015-1-1 12:39:58 org.apache.catalina.core.StandardContext start
严重: Error listenerStart
2015-1-1 12:39:58 org.apache.catalina.core.StandardContext start
严重: Context [/Shop9] startup failed due to previous errors
2015-1-1 12:39:58 org.apache.coyote.http11.Http11BaseProtocol start
信息: Starting Coyote HTTP/1.1 on http-8080
2015-1-1 12:39:58 org.apache.jk.common.ChannelSocket init
信息: JK: ajp13 listening on /0.0.0.0:8009
2015-1-1 12:39:58 org.apache.jk.server.JkMain start
信息: Jk running ID=0 time=0/18 config=null
2015-1-1 12:39:58 org.apache.catalina.storeconfig.StoreLoader load
信息: Find registry server-registry.xml at classpath resource
2015-1-1 12:39:58 org.apache.catalina.startup.Catalina start
信息: Server startup in 5247 ms
新年第一天就报错,还看不出个什么玩意来,只知道估计和Spring配置的监听器有关,不太爽吧~~
于是就上网搜搜,比较多不靠谱的答案;
综合比较,发现加日志,是最正确的做法。
以Tomcat5.5为例,tomcat5.5在默认情况下,并不会自动记录日志信息,需要人为配置。
1、在tomcat安装目录的common/classes中建立一个属性文件log4j.properties
2、在文件中写入日志的信息及日志记录的等级:
log4j.rootLogger=info,Console,R
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
#log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
log4j.appender.Console.layout.ConversionPattern=%d{yy-MM-dd HH:mm:ss} %5p %c{1}:%L - %m%n
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=${catalina.home}/logs/tomcat.log
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d{yyyy.MM.dd HH:mm:ss} %5p %c{1}(%L):? %m%n
log4j.logger.org.apache=info, R
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost]=DEBUG, R
log4j.logger.org.apache.catalina.core=info, R
log4j.logger.org.apache.catalina.session=info, R
如果不会写,直接将我的拷贝即可
3、将log4j.jar和commons-logging.jar添加到tomcat目录下的common/lib目录中
4、完成
5、其实以上的做法就是利用log4j为tomcat的启动加上日志信息。
注意:日志的记录会消耗磁盘空间,定时将日志文件进行清除,否则会积存过多的日志文件导致磁盘空间不足。
所以你查完信息,可以把这个配置文件删除;
通过日志,我很快就定位到问题所在,从而解决了问题。