Java日志记录之Slf4j

文章目录

    • 什么是Slf4j和Log4j
    • Slf4j的初步使用
    • Lombox和Slf4j

日志记录是Java开发中一个非常重要的部分,一份详细精确的日志记录,能够让我们快速地排查系统运行中所出现的问题,大大地提升我们的开发效率。

什么是Slf4j和Log4j

如果是初学者看到这两个名字,或者知道他们是和日志记录有关的类库,但是又搞不清楚两者之间的关系?

首选,我们先从名字来说起,这两个类库的名字都有一个共同的地方,那就是4j,其实4j就是for java的缩写,这两个类库的全称其实是Slf for javaLog for java,简而言之,就是Java的日志记录类库。

其中Slf4j是一个日志记录的API接口,而Log4j则是底层的具体实现,我们在一般使用的时候,都会直接使用Slf4j为我们提供的日志记录的接口,至于底层实现,我们只需要引入Log4j的依赖即可。

  • Slf4j的依赖
<dependency>
    <groupId>org.slf4jgroupId>
    <artifactId>slf4j-log4j12artifactId>
    <version>1.7.25version>
dependency>

在这个依赖中,Slf4j又自动依赖了Log4j的依赖,所以我们只需要引入一个依赖即可。
在这里插入图片描述

Slf4j的初步使用

  • 在正是使用Slf4j记录日志之前,我们还需要了解一下Log4j的日志配置文件。

log4j.properties

# log4j的日志记录属性
# DEBUG, INOF,ERROR  第一个参数为日志记录级别
# Console, File, DailyRollingFile, RollingFile  第二个参数为日志记录的方式
log4j.rootLogger=debug, File

#Console  控制台打印日志,该方式会将日志打印在控制台中
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n

#File	文件记录方式,该方式会将日志记录在log4j.appender.File.File路径的文件中
log4j.appender.File = org.apache.log4j.FileAppender
log4j.appender.File.File = log/err.log
log4j.appender.File.layout = org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern =%d [%t] %-5p [%c] - %m%n

#DailyRollingFile	每天产生一个新的日志记录文件
log4j.appender.DailyRollingFile = org.apache.log4j.DailyRollingFileAppender
log4j.appender.DailyRollingFile.File = log/err.log
log4j.appender.DailyRollingFile.layout = org.apache.log4j.PatternLayout
log4j.appender.DailyRollingFile.layout.ConversionPattern =%d [%t] %-5p [%c] - %m%n

#RollingFile	文件达到指定大小的时候产生新的日志文件
log4j.appender.RollingFile = org.apache.log4j.RollingFileAppender
log4j.appender.RollingFile.File = log/err.log
log4j.appender.RollingFile.MaxFileSize=1KB
log4j.appender.RollingFile.MaxBackupIndex=3
log4j.appender.RollingFile.layout = org.apache.log4j.PatternLayout
log4j.appender.RollingFile.layout.ConversionPattern =%d [%t] %-5p [%c] - %m%n

LogTest

public class LogTest {
     
	/**
     * 使用LoggerFactory创建一个Logger对象
     */
    private final Logger logger = LoggerFactory.getLogger(this.getClass());

    @Test
    public void delete() {
     
        logger.info("记录信息日志");
        logger.warn("记录警告日志");
        logger.error("记录错误日志");
    }
}

我们运行该代码,发现日志文件已经被记录到指定的log/err.log文件中。

Lombox和Slf4j

在每次记录日志的时候,我们都需要在每个类中使用LoggerFactory来创建一个日志记录对象,而在Lombox中,为我们提供了一个更为简便的方式来创建Logger对象记录日志。

@Slf4j

我们只需要在类上使用@Slf4j注解,那么Lombox就会自动为该类注入一个属性名为log的日志记录对象,我们就可以使用该对象来进行日志记录。

  • 首先,我们需要引入Lombox和Slf4j的依赖。
<dependency>
    <groupId>org.projectlombokgroupId>
    <artifactId>lombokartifactId>
    <version>1.16.22version>
dependency>
<dependency>
    <groupId>org.slf4jgroupId>
    <artifactId>slf4j-log4j12artifactId>
    <version>1.7.25version>
dependency>

Lombox除了需要引入相关依赖外,还需要安装Lombox插件才能够使用,其中IDEA自动集成了Lombox,我们可以直接通过IDEA的插件功能下载安装Lombox。

@Slf4j
public class LogTest {
     

    @Test
    public void delete() {
     
        log.info("记录信息日志");
        log.warn("记录警告日志");
        log.error("记录错误日志");
    }
}

注意:Lombox自动注入的log对象和我们自己使用LoggerFactory获取的logger对象都是Logger类的对象,只是对象名称不同而已。

你可能感兴趣的:(JavaWeb,java,log4j,slf4j)