可以通过在类路径中包含适日志配置文件来激活各种日志记录系统或使用logging.config
Logging System Customization
Logback logback-spring.xml, logback-spring.groovy, logback.xml,
or logback.groovy
Log4j2 log4j2-spring.xml or log4j2.xml
JDK (Java Util Logging)
logging.properties
注意:
如果使用自定义日志配置文件 会使用springboot中全局配置文件的logging相关配置失效
结合SpringBoot提供Profile来控制日志的生效
注意: 一定要将日志配置文件的文件名改成logback-spring.xml, 因为 logback.xml 会在
Springboot容器加载前先被logback给加载到, 那么由于logback无法解析springProfile 将会报错:
ERROR in ch.qos.logback.core.joran.spi.Interpreter@4:71 no applicable action for
[springProperty], current ElementPath is [[configuration][springProperty]]
ERROR in ch.qos.logback.core.joran.spi.Interpreter@4:71 no applicable action for
[springProfile], current ElementPath is [[configuration][springProfile]]
<configuration>
<!--可以引用SpringBoot全局配置文件中的配置项-->
<springProperty scope="context" name="dateformat" source="logging.pattern.dateformat"
defaultValue="-yyyy-MM-dd HH:mm:ss.SSS"/>
<!--appender 追加器 日志以哪种方式进行输出
name 取个名字
class 不同实现类会输出到不同地方
ch.qos.logback.core.ConsoleAppender 输出到控制台
-->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<!-- 格式 -->
<springProfile name="dev">
<pattern>%d{${dateformat}} [%thread] %-5level %logger{100} ======= %msg%n</pattern>
</springProfile>
<springProfile name="!dev">
<pattern>%d{${dateformat}} [%thread] %-5level %logger{100} ++++++ %msg%n</pattern>
</springProfile>
</encoder>
</appender>
<!--cn.leon.mapper-->
<!--控制跟细粒度的日志级别 根据包\根据类-->
<logger name="com.leon" level="TRACE"></logger>
<!--控制所有的日志级别-->
<root level="info">
<!-- 将当前日志级别输出到哪个追加器上面 -->
<appender-ref ref="STDOUT" />
</root>
</configuration>
logging:
level:
root: info
com:
tulingxueyuan: trace
pattern:
console: '%clr(%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}}){red} %clr(${LOG_LEVEL_PATTERN:-%10p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}'
dateformat: -yyyy-MM-dd
file:
name: D:/logs/leon.log
#path: D:/
max-size: 5KB
#spring:
# profiles:
# active: dev