可以使用 <springProperty/>读取配置文件中的配置项,参考:https://my.oschina.net/yejw/blog/1551697
总共可以使用两类方式:1、yml中 引入logback配置文件;2、yml中配置,使用默认属性,目前之摸索出下面列出的这些
application.yml
server:
port: 80
# mysql
spring:
application:
name: saic-tsp-account
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
config:
server-addr: 127.0.0.1:8848
log:
path: /Users/zhou/logs/saic
file-name: ${spring.application.name}
logging:
# file:
# path: /Users/zhou/logs/saic
# max-history: 7
# name: ${spring.application.name}.log
# clean-history-on-start: false
# max-size: 10MB
# level:
# root: info
# #mybatis sql log
# com.baomidou.example.mapper: debug
config: classpath:logback-spring.xml
# pattern:
# file: ${spring.application.name}.log.%d{yyyy-MM-dd}.log
# console: %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
# rolling-file-name: ${log.path}/${spring.application.name}/log.%d{yyyy-MM-dd}.%i.log.gz
logback-spring.xml
<?xml version="1.0" encoding="UTF-8"?>
<!--
说明:
1. 文件的命名和加载顺序有关
logback.xml早于application.yml加载,logback-spring.xml晚于application.yml加载
如果logback配置需要使用application.yml中的属性,需要命名为logback-spring.xml
2. logback使用application.yml中的属性
使用springProperty才可使用application.yml中的值 可以设置默认值
-->
<!--<configuration scan="true" scanPeriod="60 seconds">-->
<configuration debug="false" >
<!--设置存储路径变量-->
<!-- <property name="LOG_HOME" value="/Users/zhou/logs/saic"/>-->
<!-- log base path -->
<springProperty scope="context" name="LOG_HOME" source="log.path" defaultValue="logs"/>
<springProperty scope="context" name="LOG_NAME" source="log.file-name" defaultValue="saic"/>
<!-- 文件切割大小 -->
<property name="maxFileSize" value="10MB" />
<!-- 文档保留天数 -->
<property name="maxHistory" value="30" />
<!-- 文档保留总大小 -->
<property name="totalSizeCap" value="1GB" />
<!--控制台输出appender-->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<!--设置输出格式-->
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
<!--设置编码-->
<charset>UTF-8</charset>
</encoder>
</appender>
<!--文件输出,时间窗口滚动-->
<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--日志名,指定最新的文件名,其他文件名使用FileNamePattern -->
<File>${LOG_HOME}/${LOG_NAME}.log</File>
<!--文件滚动模式-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志文件输出的文件名,可设置文件类型为gz,开启文件压缩-->
<FileNamePattern>${LOG_HOME}/${LOG_NAME}/log.%d{yyyy-MM-dd}.%i.log.gz</FileNamePattern>
<!--日志文件保留天数-->
<maxHistory>${maxHistory}</maxHistory>
<totalSizeCap>${totalSizeCap}</totalSizeCap>
<!--按大小分割同一天的-->
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>${maxFileSize}</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<!--输出格式-->
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
<!--设置编码-->
<charset>UTF-8</charset>
</encoder>
<!-- <!–日志文件最大的大小–>-->
<!-- <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">-->
<!-- <MaxFileSize>10MB</MaxFileSize>-->
<!-- </triggeringPolicy>-->
</appender>
<logger name="com.apache.ibatis" level="DEBUG"/>
<logger name="java.sql.Connection" level="DEBUG"/>
<logger name="java.sql.Statement" level="DEBUG"/>
<logger name="java.sql.PreparedStatement" level="DEBUG"/>
<logger name="com.baomidou.example.mapper" level="DEBUG"/>
<!--指定基础的日志输出级别-->
<root level="INFO">
<!--appender将会添加到这个loger-->
<appender-ref ref="console"/>
<appender-ref ref="file"/>
</root>
</configuration>