如何springboot 默认的log4j2配置
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何springboot 默认的log4j2配置相关的知识,希望对你有一定的参考价值。
参考技术A Spring Boot 是 Spring 产品中一个新的子项目,致力于简便快捷地搭建基于 Spring 的独立可运行的应用。大多数的 Spring Boot 应用只需要非常少的 Spring 配置。你能够使用 Spring Boot 创建 Java 应用并通过 java -jar 来运行或者创建传统的通过 war 来部署的应用。Spring Boot 也提供了一个命令行工具来运行 spring 脚本。
Spring Boot 的目标是:
快速开发基于 Spring 的应用
开箱即用的微服务
提供一些大型项目常用的非功能性特性,例如:嵌入式服务、安全、监控、健康检查、外部配置
不用生成代码,没有 xml 配置
SpringBoot配置文件的加载优先级以及如何配置
一、全局配置文件加载优先级
spring boot 启动会扫描以下位置的application.properties或者application.yml文件作为Spring boot的默认配置文件.数值越小的标号优先级越高。
- file:./config/ (当前项目路径config目录下);
- file:./ (当前项目路径下);
- classpath:/config/ (类路径config目录下);
- classpath:/ (类路径下).
以上是按照优先级从高到低的顺序,所有位置的文件都会被加载,高优先级配置内容会覆盖低优先级配置内容。
SpringBoot会从这四个位置全部加载主配置文件,如果高优先级中配置文件属性与低优先级配置文件不冲突的属性,则会共同存在—互补配置。假如我们在上面的四个配置文件分别设置server.port=6666、7777、8888、9999。然后启动应用,最终的启动端口为6666,因为file:./config/
(当前项目路径config目录下配置文件)优先级是最高的。
自定义改变全局配置文件的加载位置:(优先级最高)
先将项目打成jar包。(指定)
然后通过命令行配置spring.config.location来改变默认配置。
java -jar ./boot-launch-1.0.jar --spring.config.location=D:/application.yml
项目打包好以后,我们可以使用命令行参数的形式,启动项目的时候来指定配置文件的新位置。
二、配置加载优先级
SpringBoot也可以从以下位置加载配置:优先级从高到低;高优先级的配置覆盖低优先级的配置,所有的配置会形成互补配置。
- 命令行参数
- 来自java:comp/env的JNDI属性
- Java系统属性(System.getProperties())
- 操作系统环境变量
- RandomValuePropertySource配置的random.*属性值
- jar包外部的application-{profile}.properties或application.yml(带spring.profile)配置文件
- jar包内部的application-{profile}.properties或application.yml(带spring.profile)配置文件
- jar包外部的application.properties或application.yml(不带spring.profile)配置文件
- jar包内部的application.properties或application.yml(不带spring.profile)配置文件
- @Configuration注解类上的@PropertySource
- 通过SpringApplication.setDefaultProperties指定的默认属性
其实大家关于配置的优先级不用特别的去记忆。用到的时候查一下、体验一下、一般来说:特殊指定配置(命令行、环境变量)大于通用配置、外部配置优先级高于内部配置、局部环境配置(带profile)大于全局普适性配置。
以上是关于如何springboot 默认的log4j2配置的主要内容,如果未能解决你的问题,请参考以下文章
springboot2 log4j2 加载多次 加载两次 配置文件 加载顺序
十一springboot 配置log4j2以及打包成zip文件