SpringBoot 日志配置文件分析
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>