巧为tomcat插件配置log4j日志,解决未报错启动不成功
2017-05-07 12:32
656 查看
前情摘要
源于Maven项目中整合SSM框架后,运行一个根据商品id查询商品信息的Demo来测试是否整合成功。在pom文件中配置好Tomcat插件,启动tomcat,如果成功,输出信息如下:
May 07, 2017 11:30:01 AM org.apache.coyote.AbstractProtocol init INFO: Initializing ProtocolHandler ["http-bio-8080"] May 07, 2017 11:30:01 AM org.apache.catalina.core.StandardService startInternal INFO: Starting service Tomcat May 07, 2017 11:30:01 AM org.apache.catalina.core.StandardEngine startInternal INFO: Starting Servlet Engine: Apache Tomcat/7.0.47 May 07, 2017 11:30:04 AM org.apache.catalina.core.ApplicationContext log INFO: No Spring WebApplicationInitializer types detected on classpath May 07, 2017 11:30:04 AM org.apache.catalina.core.ApplicationContext log INFO: Initializing Spring root WebApplicationContext -------------------这是分割线----------------------------------------- May 07, 2017 11:30:06 AM org.apache.catalina.core.ApplicationContext log INFO: Initializing Spring FrameworkServlet 'e3-manager' May 07, 2017 11:30:07 AM org.apache.coyote.AbstractProtocol start INFO: Starting ProtocolHandler ["http-bio-8080"]
而我碰到的问题是,分割线以下的信息没有输出,也就是启动失败。
但是没有报错信息,tomcat的日志文件夹内也没有文件存在,这就有点像谜之bug。
解决办法
受到一篇博客的启发,在tomcat中配置log4j,查看更详细的日志。博文地址:http://ycgit.blog.51cto.com/8590215/1852863
但是我使用的是tomcat的Maven插件,找到的资料较少,最终在万能的stackoverflow找到配置方法。
StackOverFlow地址:http://stackoverflow.com/questions/31658993/tomcat7-maven-plugin-log4j-no-appender-could-be-found-for-logger-org-apache-ca
<!--配置tomcat插件--> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <path>/</path> <port>8080</port> <!--log4j配置文件位置--> <systemProperties> <log4j.configuration>file:src/main/resources/log4j.properties</log4j.configuration> </systemProperties> </configuration> </plugin>
但是最后一个问题,我不懂配置文件怎么写的,就找了这篇博文,复制了其文中贴出的配置内容。
博文地址:http://blog.csdn.net/cfydaniel/article/details/41348449
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 # 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
后记
最终在日志文件内找到了错误原因,mybatis逆向工程生成的xml文件命名空间错了。这件事告诉我们,文件生成之后要去看一眼,确认一下。
同时也发现,tomcat的官方文档,为tomcat配置log4j的内容:
http://tomcat.apache.org/tomcat-7.0-doc/logging.html#Using_Log4j
不过Maven插件的配置我第一次看的话,也不会想到是在那里配置,其中systemProperties标签就是指定配置文件,好奇为啥他们能知道那里就算配置log4j文件的。
http://tomcat.apache.org/maven-plugin-2.2/run-mojo-features.html
官方示例节选
<configuration> <!-- http port --> <port>9090</port> <!-- application path always starts with /--> <path>/</path> <!-- optional path to a context file --> <contextFile>${tomcatContextXml}</contextFile> <!-- optional system propoerties you want to add --> <systemProperties> <appserver.base>${project.build.directory}/appserver-base</appserver.base> <appserver.home>${project.build.directory}/appserver-home</appserver.home> <derby.system.home>${project.build.directory}/appserver-base/logs</derby.system.home> <java.io.tmpdir>${project.build.directory}</java.io.tmpdir> </systemProperties> <!-- if you want to use test dependencies rather than only runtime --> <useTestClasspath>false</useTestClasspath> <!-- optional if you want to add some extra directories into the classloader --> <additionalClasspathDirs> <additionalClasspathDir></additionalClasspathDir> </additionalClasspathDirs> </configuration>
相关文章推荐
- 成功配置tomcat的log4j日志系统,格式:HTML+每天以yyyy-mm-dd.log命名的日志文件
- 成功配置tomcat的log4j日志系统,格式:HTML+每天以yyyy-mm-dd.log命名的日志文件
- jdk配置成功,但是tomcat仍无法启动解决办法!(二)
- log4j无日志生成? 我将一个web项目部署在tomcat server.xml配置文件中,当我启动tomcat是无日志输出。
- 成功配置TOMCAT的LOG4J日志系统,格式:HTML+每天以YYYY-MM-DD.LOG命名的日志文件
- 解决配置appfuse后,tomcat5.0无法启动appfuse的服务,报错,无法连接mysql
- tomcat使用log4j分割日志的配置方法
- 解决在Eclipse中配置JBoss、Tomcat等插件时遇到的问题 (转)
- 解决在Eclipse中配置JBoss、Tomcat等插件时遇到的问题
- javaEE 无法安装axis2 1.6插件;Tomcat无法启动,提示端口占用;Tomcat服务发布;axis2发布配置;syso自动补全
- log4j配置日志系统成功 (转)
- 解决在Eclipse中配置JBoss、Tomcat等插件时遇到的问题
- 启动tomcat发现 log4j:WARN No appenders could be found for logger 解决办法
- 解决在Eclipse中配置JBoss、Tomcat等插件时遇到的问题
- 配置HTTPS时启动tomcat出现did not find a matching property错解决方法
- 在tomcat中配置log4j, 使tomcat中输出更详细的日志
- jdk 配置,tomcat启动dos窗口闪后tomcat关闭问题的解决。
- 解决在Eclipse中配置JBoss、Tomcat等插件时遇到的问题
- 解决在Eclipse中配置JBoss、Tomcat等插件时遇到的问题
- 解决在Eclipse中配置JBoss、Tomcat等插件时遇到的问题