今天配置struts2应用时,启动tomcat就出现一个Error FilterStart错误。tomcat控制台只输出Error FilterStart, 没有更多其它有用的错误信息。上网搜半天也没搜到答案,因为出现这个错误有很多种原因。最根本最有效的方法就是让tomcat打印更详细的日志,以便我们找出错误原因。
具体步骤如下:
在tomcat官方网站,有一篇相关文章叫Logging in Tomcat, 地址为http://tomcat.apache.org/tomcat-6.0-doc/logging.html
在这个例子中,我用的tomcat版本是apache-tomcat-6.0.35
一。 下载所需的jar包
log4j-1.2.16.jar:
http://www.apache.org/dyn/closer.cgi/logging/log4j/1.2.16/apache-log4j-1.2.16.zip
tomcat-juli-adapters.jar:
http://dldx.youkuaiyun.com/fd.php?i=228550794227793&s=2b995791f29a543d2dd4754a9494f117
或
http://www.apache.org/dist/tomcat/tomcat-6/v6.0.36/bin/extras/tomcat-juli-adapters.jar
tomcat-juli.jar:
http://dldx.youkuaiyun.com/fd.php?i=317650794183761&s=1b6457171e5a8e5f2c4741707a1062a7
或
http://www.apache.org/dist/tomcat/tomcat-6/v6.0.36/bin/extras/tomcat-juli.jar
二。编写log4j.properties
文件,文件内容如下:
log4j.rootLogger=INFO, CATALINA # Define all the appenders
#以下四行是配置日志打印到日志文件 #log4j.appender.CATALINA=org.apache.log4j.DailyRollingFileAppender #log4j.appender.CATALINA.File=${catalina.base}/logs/catalina. #log4j.appender.CATALINA.Append=true #log4j.appender.CATALINA.Encoding=UTF-8
#以下四行是配置日志打印到控制台
log4j.appender.CATALINA=org.apache.log4j.ConsoleAppender log4j.appender.CATALINA.Encoding=UTF-8 log4j.appender.CATALINA.layout = org.apache.log4j.PatternLayout log4j.appender.CATALINA.layout.ConversionPattern = %d [%t] %-5p %c- %m%n
# Roll-over the log once per day log4j.appender.CATALINA.DatePattern='.'yyyy-MM-dd'.log' log4j.appender.CATALINA.layout = org.apache.log4j.PatternLayout log4j.appender.CATALINA.layout.ConversionPattern = %d [%t] %-5p %c- %m%n log4j.appender.LOCALHOST=org.apache.log4j.DailyRollingFileAppender log4j.appender.LOCALHOST.File=${catalina.base}/logs/localhost. log4j.appender.LOCALHOST.Append=true log4j.appender.LOCALHOST.Encoding=UTF-8 log4j.appender.LOCALHOST.DatePattern='.'yyyy-MM-dd'.log' log4j.appender.LOCALHOST.layout = org.apache.log4j.PatternLayout log4j.appender.LOCALHOST.layout.ConversionPattern = %d [%t] %-5p %c- %m%n log4j.appender.MANAGER=org.apache.log4j.DailyRollingFileAppender log4j.appender.MANAGER.File=${catalina.base}/logs/manager. log4j.appender.MANAGER.Append=true log4j.appender.MANAGER.Encoding=UTF-8 log4j.appender.MANAGER.DatePattern='.'yyyy-MM-dd'.log' log4j.appender.MANAGER.layout = org.apache.log4j.PatternLayout log4j.appender.MANAGER.layout.ConversionPattern = %d [%t] %-5p %c- %m%n log4j.appender.HOST-MANAGER=org.apache.log4j.DailyRollingFileAppender log4j.appender.HOST-MANAGER.File=${catalina.base}/logs/host-manager. log4j.appender.HOST-MANAGER.Append=true log4j.appender.HOST-MANAGER.Encoding=UTF-8 log4j.appender.HOST-MANAGER.DatePattern='.'yyyy-MM-dd'.log' log4j.appender.HOST-MANAGER.layout = org.apache.log4j.PatternLayout log4j.appender.HOST-MANAGER.layout.ConversionPattern = %d [%t] %-5p %c- %m%n log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.Encoding=UTF-8 log4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern = %d [%t] %-5p %c- %m%n # Configure which loggers log to which appenders log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost]=INFO, LOCALHOST log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager]=\ INFO, MANAGER log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager]=\ INFO, HOST-MANAGER
三。将log4j.properties
文件和log4j-1.2.16.jar,tomcat-juli-adapters.jar两个jar包放到apache-tomcat-6.0.35\lib目录下
四。用刚才下的tomcat-juli.jar替换apache-tomcat-6.0.35\bin\tomcat-juli.jar
启动tomcat,如果以上文给出的log4j.properties
文件来配置log4j,那么tomcat控制台就没有任何信息输入,日志都输出到apache-tomcat-6.0.35\logs\catalina文件中了.