SpringBoot使用的是SLF4j当门面,Logback当实现完成
日志级别#
数字越大,级别越高,框架只会输出大于等于当前日志级别的信息
- ERROR 40
- WARN 30
- INFO 20
- DEBUG 10
- TRACE 0
几种常用的使用方法#
第一种 :#
private Logger logger = LoggerFactory.getLogger(WeixindiancanApplicationTests.class); logger.info(); ...
默认的级别上info,按上面的排名只会输出 info,warn,error级别以上的日志
在获取logger对象时,一般都是将本类的class传递进去,在默认的格式在日志输出时会把每条日志信息所在的class名输出出来
第二种: SpringBoot整合 Lombok#
Lombok不仅仅提供了强大的@Data,和getset注解,同时支持日志相关
@Slf4j
添加在类上,我们就不用再手动的获取Logger对象了,而是直接使用log
log.debug("dubug..."); log.info("info..."); log.error("error...");
格式:#
在输出日志的时候可以向下面这样,两种写法
log.info("name="+name+" age="+age); log.info("name= {},age: {}",name,age);
application.yml的配置#
如图是日志相关的配置
- path: E: \
将日志输出到文件 , 默认会在这个路径下创建spring.log
- file: E:\mylog.log
将日志输出到指定目录的指定文件, 可以取代上面的path
- level:
- 可以设置上面的五种日志级别
- 可以指定某个类的日志级别
logging: pattern: level: com.changwu.wen.WeicanApplication: debug
- console: 格式,网上很多不同的输出格式
logback-sring.xml的配置#
通过这个配置文件,可以更方便的控制日志的输出,比如将 级别为info的输出到A文件, 级别为error的输出到B文件
默认放置在Resources目录下
<?xml version="1.0" encoding="UTF-8"?> <configuration> <!-- 配置项 配置控制台的输出--> <appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender"> <!--展示格式--> <layout class="ch.qos.logback.classic.PatternLayout"> <pattern> %d - %msg%n </pattern> </layout> </appender> <!-- 配置项 配置文件的输出 --> <appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!-- 只保留 INFO --> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>ERROR</level> <!-- 当匹配到error时, 禁止输出 --> <onMatch>DENY</onMatch> <onMismatch>ACCEPT</onMismatch> </filter> <encoder> <!--展示格式--> <pattern> %msg%n </pattern> </encoder> <!--滚动策略 按照时间,每天产生一个--> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!--路径--> <fileNamePattern>E:\info.%d.log</fileNamePattern> </rollingPolicy> </appender> <!-- 创建第三个配置项,将error和info分别输出到不同的文件中 --> <appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!-- 只保留ERROR --> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>ERROR</level> </filter> <encoder> <!--展示格式--> <pattern> %msg%n </pattern> </encoder> <!--滚动策略 按照时间,每天产生一个--> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!--路径--> <fileNamePattern>E:\error.%d.log</fileNamePattern> </rollingPolicy> </appender> <!-- 将上面的配置项,使用到root目录上 --> <root level="info"> <appender-ref ref="consoleLog"/> <appender-ref ref="fileInfoLog"/> <appender-ref ref="fileErrorLog"/> </root> </configuration>