巧为tomcat插件配置log4j日志,解决未报错启动不成功
前情摘要
源于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日志,解决未报错启动不成功相关推荐
- github 使用之--ssh配置(及解决ssh_add 报错)
网上与很多blog指导怎么生成ssh秘钥与github账户绑定,这里我参考的是: http://blog.csdn.net/xsckernel/article/details/8563993 gith ...
- 安装sql serve2016+JDK配置环境变量+解决KB2919355报错最全教程
一.下载 安装网址:https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 二.安装 1.点击安装程序 image.png 2. ...
- 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 ...
- 【ELK】ELK菜鸟手记 (一) 环境配置+log4j日志记录——转自Master HaKu
感谢Master HaKu的分享,博客园的账号忘了,文章里面有原文链接,尊重原创 ELK菜鸟手记 (一) 环境配置+log4j日志记录 - Master HaKu - 博客园 Master HaKu ...
- 使用代码形式配置Log4J日志框架
2019独角兽企业重金招聘Python工程师标准>>> 一.使用代码形式配置Log4J日志框架 一般情况下,我们都是使用配置文件形式来配置Log4J日志框架,比如使用"lo ...
- 解决MySQL报错ERROR 2002 (HY000)【转】
今天在为新的业务线搭架数据库后,在启动的时候报错 root@qsbilldatahis-db01:/usr/local/mysql/bin# ./mysql ERROR 2002 (HY000): C ...
- java 504错误怎么解决_求助java.lang.NoClassDefFoundError怎么解决,报错信息如下
求助java.lang.NoClassDefFoundError怎么解决,报错信息如下 四月 14, 2018 11:03:07 上午 org.apache.catalina.startup.Embe ...
- 解决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 ...
- 配置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; 报错的原因是因为配置的 ...
最新文章
- ORA-**,oracle 12c操作问题
- Android 4.0中振动控制
- linux服务器性能监控命令汇总(一)
- 临床科研设计的主要内容
- C语言程序设计 | 结构体内存对齐,位段
- 淘宝开发平台知识点一,入门指南
- 一加到1亿。C语言_可能是今年最难选的2部手机:小米10详细对比一加8T
- serialport 延时计时器 修改_为了夜经济,青岛真是拼了!地铁公交延时运营,再也不怕没车了...
- (项目)生鲜超市(六)
- Flutter实战之顶部导航栏以及ListView简单应用
- 《计算机系统基础》复习——简答题 01
- 统一建模语言UML概述
- matlab 求三维质心,如何计算三维质心?
- 微信企业号(公众号)开发流程汇总
- Word文字中如何快速复制粘贴文字内容
- PS 2019 Mac版 自学入门系列(三)——插入对象
- 本地化部署大语言模型 ChatGLM
- 组播IP 映射 组播MAC
- 三星860EVO SSD评测
- EMG推进器EB800-60II
热门文章
- 信捷DS5B伺服驱动器Modbus控制程序编写
- php 文件夹打包zip压缩包
- 怎么把电脑设为服务器共享文档,共享电脑设置 服务器
- Python小工具-电影天堂爬取电影下载链接
- java日期类型_Java 学习笔记 (三) Java 日期类型
- 详细解读【虚拟内存】
- 华东师大在职计算机分数线,报考华东师范大学在职研究生分数线是多少呢?
- java中ws程序是什么意思_Java Web服务对象(JAX-WS)生命周期
- Beyond Compare 4密钥过期解决办法
- 电脑桌面计算机的管理在哪,电脑设备管理器在哪里打开?5种打开方法总有适合你...