概述
用于记录系统中发生的事件。
日志的等级
all < trace < debug < info < warn < error < fatal < off
Lgback + SLF4j
项目中导入依赖
<!-- 导入logback ,IDEA会自动导入 slf4
j和 logback -core -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version> 1.2.3 </version>
</dependency>
//创建一个测试
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class logTest {
private Logger log = LoggerFactory.getLogger(logTest.class);
@Test
public void test1(){
log.trace("go trace");
log.debug("go debug");
log.info("go info");
log.warn("go warn");
log.error("go error");
//slf4j 没有fatl
}
}
<!--测试结果:logback默认的配置
22:04:09.208 [main] DEBUG com.lq.logTest - go debug
22:04:09.212 [main] INFO com.lq.logTest - go info
22:04:09.212 [main] WARN com.lq.logTest - go warn
22:04:09.212 [main] ERROR com.lq.logTest - go error
-->
//resource下建 logback.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!--scan : true是定期扫描logback.xml配置文件,如有改动,会重新加载
scanPeriod:设置扫描周期
debug:true是打印logback内部日志信息
-->
<configuration scan="true" scanPeriod="60 seconds" debug="true">
<property name="log.path" value="D:/log"/>
<property name="CONSOLE_LOG_PATTERN"
value="%d{yyyy-MM-dd HH:mm:ss.SSS} | -{%-5p} in %logger.%M[line-%L] -%m%n"/>
<!-- 1. 输出到控制台-->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<!--输出不低于debug的日志等级,自己设置等级 -->
<level>debug</level>
</filter>
<encoder>
<!--日志格式 对应11行-->
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<!-- 3. 存放在文件中 -->
<appender name="file" class="ch.qos.logback.core.FileAppender">
<!--存放路径和名字,具体位置在第九行-->
<filter>${log.path}/hello2.log</filter>
<encoder>
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
</encoder>
</appender>
<!-- 4。 另一种 -->
<appender name="file2" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/hello.log</file>
<encoder>
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
<charset>UTF-8</charset>
</encoder>
<!--滚动策略-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedFileNamingAndTriggeringPolicy">
<fileNamePattern>${log.path}/hello-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!--设置存放日志文件的最大内存-->
<maxFileSize>1kb</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!--存放周期,1 则是前一天和今天,自己设置,不设置保存所有 -->
<maxHistory>1</maxHistory>
</rollingPolicy>
</appender>
<!-- 2. 哪些日志可以输出 level是不低于这个日志等级 。
如果上面有level:debug。说明日志等级要不低于trace且debug-->
<root level="trace">
<!--注册-->
<appender-ref ref="CONSOLE"/>
<appender-ref ref="file"/>
<appender-ref ref="file2"/>
</root>
</configuration>
结果就不写了,想跑一下的自己跑看看