首先导入相关logback依赖,本次创建的测试项目为maven 3.61,jdk1.8
logback的依赖
<dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.2.3</version> </dependency>
然后是配置文件
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="true">//如果debug为true表示项目启动时会检索logback相关的启动信息
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">//表示输出到控制台
<Target>System.out</Target>
<encoder>
<pattern>%highlight(%-5level) %d{HH:mm:ss.SSS} %m %n</pattern>
</encoder>
</appender>
<!--保存出错的信息-->
<!-- <appender name="SQL" class="ch.qos.logback.core.FileAppender">-->//把日志文件输出到指定目录下,保存为文件
<!-- <file>sql.log</file>-->
<!-- <append>true</append>-->
<!-- <immediateFlush>true</immediateFlush>-->
<!-- <encoder>-->
<!-- <pattern>%d{HH:mm:ss.SSS} %m %n</pattern>-->
<!-- </encoder>-->
<!-- </appender>-->
<logger name="cn.schoolwow.quickdao" level="DEBUG" additivity="false">//日志过滤器,name表示需要过滤的包 level表示过滤级别 trace info debug error all 等等,不区分大小写
<appender-ref ref="stdout" />
</logger>
<logger name="top.redheart.logback.logbacktest" level="info" additivity="false">
<appender-ref ref="stdout"></appender-ref>
</logger>
<root level="debug">
<appender-ref ref="stdout" />
</root>
</configuration>

这是测试效果
级别测试
public static void main(String[] args) {
// User user = new User();
// user.setName("zs");
// user.setAge("29");
// long save = dao.save(user);
// logger.info("[插入用户信息]user:{},结果:{}",user,save>0?"成功":"失败");
logger.trace("[这是trace级别的]");
logger.info("[这是info级别的]");
logger.debug("[这是debug级别的]");
logger.warn("[这是warn级别的]");
logger.error("[这是error级别的]");
}
1):当配置文件级别为trace时
<root level="trace">
<appender-ref ref="stdout"/>
</root>
结果为:
TRACE 16:41:38.704 [这是trace级别的]
INFO 16:41:38.704 [这是info级别的]
DEBUG 16:41:38.704 [这是debug级别的]
WARN 16:41:38.704 [这是warn级别的]
ERROR 16:41:38.705 [这是error级别的]
2)当配置文件级别为info时
<root level="info">
<appender-ref ref="stdout"/>
</root>
结果为:
INFO 16:43:37.873 [这是info级别的]
WARN 16:43:37.874 [这是warn级别的]
ERROR 16:43:37.874 [这是error级别的]
3)当配置文件级别为debug时
<root level="debug">
<appender-ref ref="stdout"/>
</root>
结果为:
INFO 16:44:31.944 [这是info级别的]
DEBUG 16:44:31.944 [这是debug级别的]
WARN 16:44:31.944 [这是warn级别的]
ERROR 16:44:31.944 [这是error级别的]
4)当配置文件为warn时
<root level="warn">
<appender-ref ref="stdout"/>
</root>
结果为:
WARN 16:45:34.934 [这是warn级别的]
ERROR 16:45:34.936 [这是error级别的]
5)当配置文件级别为error时
<root level="error">
<appender-ref ref="stdout"/>
</root>
结果为:
ERROR 16:46:14.858 [这是error级别的]
总结:
trace显示的信息最多,包括所有级别的信息,其次就是debug,当级别为info,warn,error时,不会显示trace,和debug的信息
故得出的结果
trace>debug>info>warn>error
配置细节,以后再更新。