SpringBoot 配置外放,日志外放
配置外放
springBoot在启动时会自动扫描以下几个文件的路径:在其中找寻配置文件(application.properties或application.yml)
1、jar包同级目录下的config目录
2、jar包同级目录
3、jar包中的resources目录下的config目录
4、jar包中的resources目录
于是就出现了下图的操作
日志文件配置为外放:
logback.xml配置:
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
<property name="LOG_HOME" value="logs" />
<!-- springProperty中的 source 的配置来自于上图的配置 -->
<springProperty scope="context" name="LOG_HOME" source="logging.primary.directory"/>
<springProperty scope="context" name="LOG_NAME" source="logging.name"/>
<!-- 控制台输出 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
<pattern>%d{HH:mm:ss.SSS} [%-5level] [%F - %L] [%thread] | %msg%n</pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- rollover daily -->
<fileNamePattern>${LOG_HOME}/%d{yyyy-MM-dd}/${LOG_NAME}_%d{yyyy-MM-dd}_%i.log</fileNamePattern>
<!-- each file should be at most 100MB, keep 60 days worth of history, but at most 20GB -->
<maxFileSize>200MB</maxFileSize>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d{HH:mm:ss.SSS} [%-5level] [%F - %L] [%thread] | %msg%n</pattern>
</encoder>
</appender>
<!-- 日志输出级别 -->
<root level="INFO">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE" />
</root>
</configuration>
好了,运行起来吧,这时你就发现,log日志成功打印,主要配置也存在于jar项目外了