SpringBoot 能加载的日志配置文件
根据不同的日志系统,你可以按如下规则组织配置文件名,就能被正确加载:
Logback:logback-spring.xml, logback-spring.groovy, logback.xml, logback.groovy
Log4j:log4j-spring.properties, log4j-spring.xml, log4j.properties, log4j.xml
Log4j2:log4j2-spring.xml, log4j2.xml
JDK (Java Util Logging):logging.properties
新建的文件放置在resource 目录下就可以了
<?xml version="1.0" encoding="UTF-8"?>
<!-- scan 配置文件发生变化是是否重新加载,默认为true
scanPeriod 配置监测配置文件是否发生变化的事件间隔,默认为一分钟
debug 此属性设置为true时,将打印logback的内部日志文件,默认为false
-->
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<contextName>logback</contextName>
<property name="log.path" value="E:\\test\\logback.log" />
<!-- appender 用来格式化日志输出节点,class 用来指定使用哪种输出策略,常用的有控制台输出策略和文件输出策略
encoder表示对日志进行编码:
%d{HH: mm:ss.SSS}——日志输出时间
%thread——输出日志的进程名字,这在Web应用以及异步任务处理中很有用
%-5level——日志级别,并且使用5个字符靠左对齐
%logger{36}——日志输出者的名字
%msg——日志消息
%n——平台的换行符
ThresholdFilter为系统定义的拦截器,
例如我们用ThresholdFilter来过滤掉ERROR级别以下的日志不输出到文件中。
如果不用记得注释掉,不然你控制台会发现没日志~
-->
<!-- <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter> -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36}
- %msg%n</pattern>
</encoder>
</appender>
<!-- 文件输出策略 RollingFileAppender 用于切分日志文件-->
<appender name="file"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}</file>
<!--
<fileNamePattern>logback.%d{yyyy-MM-dd}.log</fileNamePattern>定义了日志的切分方式
——把每一天的日志归档到一个文件中 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>logback.%d{yyyy-MM-dd}.log</fileNamePattern>
</rollingPolicy>
<encoder>
<pattern>%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36}
- %msg%n</pattern>
</encoder>
</appender>
<!-- 节点是必选节点,用来指定最基础的日志输出级别,只有一个level属性
可以包含零个或多个元素,标识这个appender将会添加到这个loger。
-->
<root level="info">-
<appender-ref ref="console" />
<appender-ref ref="file" />
</root> <!-- logback为java中的包 -->
<!--
用来设置某一个包或者具体的某一个类的日志打印级别、以及指定<appender>。
<loger>仅有一个name属性,一个可选的level和一个可选的addtivity属性。
addtivity:是否向上级loger传递打印信息。默认是true。
-->
<logger name="com.geng.controller" /> <!--logback.LogbackDemo:类的全路径 -->
<logger name="com.geng.controller.HelloController" level="INFO"
additivity="false">
<appender-ref ref="console" />
</logger>
</configuration>
所依赖的jar包为
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</dependency>