前情摘要

源于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%nlog4j.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%nlog4j.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%nlog4j.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%nlog4j.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日志,解决未报错启动不成功相关推荐

  1. github 使用之--ssh配置(及解决ssh_add 报错)

    网上与很多blog指导怎么生成ssh秘钥与github账户绑定,这里我参考的是: http://blog.csdn.net/xsckernel/article/details/8563993 gith ...

  2. 安装sql serve2016+JDK配置环境变量+解决KB2919355报错最全教程

    一.下载 安装网址:https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 二.安装 1.点击安装程序 image.png 2. ...

  3. git 命令行配置及配置文件 解决clone报错 LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443

    Intro clone 某个来自于 github 的仓库的时候,报错如下: leung@wuyujin coderepo % git clone https://github.com/spring-g ...

  4. 【ELK】ELK菜鸟手记 (一) 环境配置+log4j日志记录——转自Master HaKu

    感谢Master HaKu的分享,博客园的账号忘了,文章里面有原文链接,尊重原创 ELK菜鸟手记 (一) 环境配置+log4j日志记录 - Master HaKu - 博客园 Master HaKu ...

  5. 使用代码形式配置Log4J日志框架

    2019独角兽企业重金招聘Python工程师标准>>> 一.使用代码形式配置Log4J日志框架 一般情况下,我们都是使用配置文件形式来配置Log4J日志框架,比如使用"lo ...

  6. 解决MySQL报错ERROR 2002 (HY000)【转】

    今天在为新的业务线搭架数据库后,在启动的时候报错 root@qsbilldatahis-db01:/usr/local/mysql/bin# ./mysql ERROR 2002 (HY000): C ...

  7. java 504错误怎么解决_求助java.lang.NoClassDefFoundError怎么解决,报错信息如下

    求助java.lang.NoClassDefFoundError怎么解决,报错信息如下 四月 14, 2018 11:03:07 上午 org.apache.catalina.startup.Embe ...

  8. 解决Redis报错Redis is configured to save RDB snapshots, but it is currently not able to persist on disk

    Redis报错信息 在Spring Boot中集成Redis客户之后,进行数据操作,发现报如下错误: org.springframework.data.redis.RedisSystemExcepti ...

  9. 配置gradle时,一直报错提示:ERROR: JAVA_HOME is set to an invalid directory: D:\Java\jdk1.8.0_144;

    配置gradle失败,一直报错提示:ERROR: JAVA_HOME is set to an invalid directory: D:\Java\jdk1.8.0_144; 报错的原因是因为配置的 ...

最新文章

  1. ORA-**,oracle 12c操作问题
  2. Android 4.0中振动控制
  3. linux服务器性能监控命令汇总(一)
  4. 临床科研设计的主要内容
  5. C语言程序设计 | 结构体内存对齐,位段
  6. 淘宝开发平台知识点一,入门指南
  7. 一加到1亿。C语言_可能是今年最难选的2部手机:小米10详细对比一加8T
  8. serialport 延时计时器 修改_为了夜经济,青岛真是拼了!地铁公交延时运营,再也不怕没车了...
  9. (项目)生鲜超市(六)
  10. Flutter实战之顶部导航栏以及ListView简单应用
  11. 《计算机系统基础》复习——简答题 01
  12. 统一建模语言UML概述
  13. matlab 求三维质心,如何计算三维质心?
  14. 微信企业号(公众号)开发流程汇总
  15. Word文字中如何快速复制粘贴文字内容
  16. PS 2019 Mac版 自学入门系列(三)——插入对象
  17. 本地化部署大语言模型 ChatGLM
  18. 组播IP 映射 组播MAC
  19. 三星860EVO SSD评测
  20. EMG推进器EB800-60II

热门文章

  1. 信捷DS5B伺服驱动器Modbus控制程序编写
  2. php 文件夹打包zip压缩包
  3. 怎么把电脑设为服务器共享文档,共享电脑设置 服务器
  4. Python小工具-电影天堂爬取电影下载链接
  5. java日期类型_Java 学习笔记 (三) Java 日期类型
  6. 详细解读【虚拟内存】
  7. 华东师大在职计算机分数线,报考华东师范大学在职研究生分数线是多少呢?
  8. java中ws程序是什么意思_Java Web服务对象(JAX-WS)生命周期
  9. Beyond Compare 4密钥过期解决办法
  10. 电脑桌面计算机的管理在哪,电脑设备管理器在哪里打开?5种打开方法总有适合你...