外置tomcat启动springboot应用,日志profile功能失效

author author     2023-02-16     731

关键词:

参考技术A 日志profile相关配置如下

在主配置文件 application.properties 中声明profile为dev环境
spring.profiles.active=dev

在 application-dev.properties 文件中指定了日志配置文件为类路径下的log4j2-dev.xml
logging.config=classpath:log4j2-dev.xml

但是项目启动的时候,在 LoggingApplicationListener 中的initializeSystem方法中打断点,发现获取到的loggingConfig属性却不是我们配置的类路径下的log4j2-dev.xml
而是IDEA这个开发工具自带的tomcat插件中的日志配置

出现的问题是, 最后项目使用的log4j2的配置文件是 类路径下的 log4j2.xml , 并不是我指定的 log4j2-dev.xml
当我将 log4j2.xml 改名为 log4j2.xml.bk 时,使用的是 log4j2 默认的配置, 如下图

很是不解,想debug源码,但是不知道该从哪下手,最后去log4j2的官网查了下资料,
官网文档中Configuration章节给出了log4j2的自动配置加载的先后顺序, 大体翻译了一下

找到一种解决方案, 通过jvm参数配置日志文件的方案,
在IDEA tomcat插件中的vm options中配置如下, 然后ok apply

找不到问题的源头,  烦 : (

外置tomcat启动springboot程序模式下解决过滤器注入bean的空指针问题

  在上一篇博文中,一般是可以解决过滤器注入bean的空指针问题的,但我们跑在服务器上的Spring程序一般是使用外置tomcat来启动的,1publicstaticvoidmain(String[]args)throwsInterruptedException{2ApplicationContextcontext=SpringApplication.run(Application... 查看详情

21springboot——使用外置的tomcat服务器

嵌入式Servlet容器:应用打成可执行的jar优点:简单、便携;缺点:默认不支持JSP、优化定制比较复杂      使用定制器【ServerProperties、自定义      EmbeddedServletContainerCustomizer】, &nb... 查看详情

springboot配置外部tomcat项目启动流程源码分析(下)(代码片段)

前言SpringBoot应用默认以Jar包方式并且使用内置Servlet容器(默认Tomcat),该种方式虽然简单但是默认不支持JSP并且优化容器比较复杂。故而我们可以使用习惯的外置Tomcat方式并将项目打War包。一键获取SpringBoot笔记【6】SpringApplica... 查看详情

Spring Boot + Tomcat + Jetty - 应用程序无法启动

】SpringBoot+Tomcat+Jetty-应用程序无法启动【英文标题】:SpringBoot+Tomcat+Jetty-Applicationfailedtostart【发布时间】:2021-04-1915:33:39【问题描述】:我正在使用SpringBoot+Java8。添加了一个REST资源并尝试测试以确保基本配置正确。但我在启动S... 查看详情

转-springboot——使用外置的tomcat服务器

转自:SpringBoot——使用外置的Tomcat服务器_架构师的小跟班的博客-CSDN博客_springboot使用外置tomcat1前言2修改步骤2.1修改打包方式(jar->war)2.2排除SprignBoot的Web模块中的Tomcat依赖2.2.1将嵌入的Tomcat依赖方式改成provided2.2... 查看详情

通过 Spring Boot 应用程序关闭 Tomcat 日志记录

】通过SpringBoot应用程序关闭Tomcat日志记录【英文标题】:TurnoffTomcatloggingviaSpringBootApplication【发布时间】:2016-05-3021:02:00【问题描述】:我在Tomcat8上部署了一个SpringBoot应用程序当应用程序启动时,我看到以下内容18-Feb-201615:28:12... 查看详情

springboot项目部署到外置tomcat

1.去除Springboot内嵌Tomcat依赖1<dependency>2<groupId>org.springframework.boot</groupId>3<artifactId>spring-boot-starter-web</artifactId>4<exclusions>5<!--去除内嵌tomcat--& 查看详情

springboot应用启动并查看配置的日志

#!/bin/bash#############################################################日期:2020-02-10#作者:何鹏举#说明:根据传入参数的jar包名称,重启SpringBoot应用并查看日志############################################################if[-z$1];th 查看详情

外置容器创建及启动applicationcontext过程(代码片段)

一、外置容器使用步骤SpringBootWeb在外置容器中也可以运行,使用步骤是须创建一个war项目;将嵌入式的Tomcat指定为provided;<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring‐boot‐starter‐tomc... 查看详情

springboot启动过程解析logback

使用SpringBoot默认的日志框架Logback。所有这些POM依赖的好处在于为开发Spring应用提供了一个良好的基础。SpringBoot所选择的第三方库是经过考虑的,是比较适合产品开发的选择。但是SpringBoot也提供了不同的选项,比如日志框架可... 查看详情

springboot2.x项目使用外置绝对路径的配置文件

...解决应用部署应用时指定配置文件存放位置的问题.  SpringBoot项目默认加载以下位置的配置文件:classpath:file:./classpath:config/file:./config/:  想要指定外部的配置文件,一种方法就是通过启动脚本来控制:在启动脚本中添加:-Dspring.co... 查看详情

查看springboot应用中的嵌入式tomcat的版本

第一种,在启动springboot项目的时候,日志中可以看到第二种,直接在maven依赖文件中查看地址在:你的maven库文件夹/org/springframework/boot/spring-boot-dependencies/springboot版本/*.pom在这个pom文件下搜索tomcat.version 查看详情

彩蛋推荐|springboot技术专题「tomcat技术专区」用正确的姿势如何用外置tomcat配置及运行(tomcat优化分析)(代码片段)

...景。外置tomcat执行pom.xml文件首先更改打包方式war,再排除springboot内置的web项目下tomcat依赖Maven配置调整移除tomcat依赖或者将tomcat依赖scope改为provide&#x 查看详情

springboot应用启动内置tomcat的过程分析(代码片段)

Connector启动过程Connector是Tomcat提供的类。//通过此Connector开始处理请求@OverrideprotectedvoidstartInternal()throwsLifecycleException//Validatesettingsbeforestartingif(getPortWithOffset()<0)thrownewLifecycleEx 查看详情

Spring Boot:如何禁用 Tomcat 启动日志记录?

】SpringBoot:如何禁用Tomcat启动日志记录?【英文标题】:SpringBoot:HowtodisableTomcatstartuplogging?【发布时间】:2019-06-0306:14:01【问题描述】:我正在使用带有Logback的SpringBoot2.0.x。在我的应用程序启动时(使用嵌入式tomcat),我看到... 查看详情

springboot配置外部tomcat项目启动流程源码分析(上)(代码片段)

前言SpringBoot应用默认以Jar包方式并且使用内置Servlet容器(默认Tomcat),该种方式虽然简单但是默认不支持JSP并且优化容器比较复杂。故而我们可以使用习惯的外置Tomcat方式并将项目打War包。一键获取SpringBoot学习笔记【1】创建... 查看详情

springboot-简介

参考技术A接触SpringBoot已经很长时间了,但对SpringBoot的理解还是虚虚实实,找不着北,所以决定花一些时间总解下,虽然不知道能不能坚持下来,但先开始吧!SpringBoot是一个便于创建独立的、生产级的、基于Spring的应用程序框... 查看详情

spring boot .war tomcat 应用程序日志不存在

】springboot.wartomcat应用程序日志不存在【英文标题】:springboot.wartomcatapplicationlogsnotthere【发布时间】:2019-11-2012:29:12【问题描述】:我正在尝试将我的webapp日志写入tomcat中/logs目录中的.log文件,但该文件没有生成,也没有任何日... 查看详情