SpringBoot集成slf4j
SpringBoot集成slf4j
·
- 添加slf4j依赖
SpringBoot会默认使用logback作为日志框架,在生成springboot项目的时候可以直接勾选logback,那么就可以直接使用logback了。手动添加的话,建议使用slf4j+logback,后面项目更容易维护:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
- 配置日志输出相关信息到logback-spring.xml
以下例子为生成天级别日志的配置方式,还可以为每一种级别的日志设置不同的日志文件取存储,约定的配置文件名称必须是logback-spring.xml。 如下配置将在根目录applog中每天生成一个文件夹并生成一个天级别的日志文件。
Logger作为日志的记录器,把它关联到应用的对应的context上后,主要用于存放日志对象,也可以定义日志类型、级别。
Appender主要用于指定日志输出的目的地,目的地可以是控制台、文件、远程套接字服务器、 MySQL、PostreSQL、 Oracle和其他数据库、 JMS和远程UNIX Syslog守护进程等。
Layout 负责把事件转换成字符串,格式化的日志信息的输出。
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<contextName>logback</contextName>
<!--输出到控制台-->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!--按天生成日志-->
<appender name="logFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<Prudent>true</Prudent>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>
applog/%d{yyyy-MM-dd}/%d{yyyy-MM-dd}.log
</FileNamePattern>
</rollingPolicy>
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>
%d{yyyy-MM-dd HH:mm:ss} -%msg%n
</Pattern>
</layout>
</appender>
<!-- logger节点,可选节点,作用是指明具体的包或类的日志输出级别,以及要使用的<appender>(可以把<appender>理解为一个日志模板)。addtivity:非必写属性,是否向上级loger传递打印信息。默认是true-->
<logger name="com.leshangju.project" additivity="false">
<appender-ref ref="console"/>
<appender-ref ref="logFile"/>
</logger>
<root level="info">
<appender-ref ref="console"/>
<appender-ref ref="logFile"/>
</root>
</configuration>
- 在ymal中注册配置和日志级别
使用以下方式可以单独设置每个包下的日志记录级别,其中file属性可有可无。
logging:
file: applog/sys.log
level:
com:
leshangju:
prism:
auth:
dao: debug
usershop:
dao: debug
loginuser:
dao: debug
注意:
level用来配置指定包的路径下应用程序的日志记录,及其日志级别。
logging.level用来指定具体的包中应用程序日志的输出级别。上面的配置表示com.hl.magic包下的所有日志输出级别为 trace,会将操作数据库的 sql 打印出来,开发时设置成 trace 方便定位问题,在生产环境上,将这个日志级别再设置成 error 级别即可。
日志常用的五个级别,根据严重程度由低到高,依次为:debug(调试 ) < info(消息) < warn(警告) < error(错误) < fatal(严重错误)。通常可以根据实际所需要的颗粒度的大小选择其中的几个,当前常用debug,info,warn,error4个级别
- 在代码中使用slf4j
在类上面添加@Slf4j注解,代码中直接使用log.XX记录日志即可
@RestController
@Slf4j
public class Test {
@RequestMapping("/testLog")
public String testLog(){
log.info("testLog 接口");
return "";
}
}
- 关于slf4j,logback,log4j的区别和联系
slf4j(Simple logging Facade for Java) 简单日志门面,日志系统的实现进行了具体的抽象化,只提供了统一的日志使用接口,没有任何日志实现,只有一个jar包(slf4j-api.jar)。
log4j和logback是具体的日志框架。这两个日志框是同一个作者开发,后者性能更高。
logbak直接实现slf4j接口,性能更高
springboot默认日子框架为logback
更多配置可以参考:
原文链接:https://blog.csdn.net/mu_wind/article/details/99830829
更多推荐
已为社区贡献3条内容
所有评论(0)