使用slf4j注解log报错_slf4j日志输出到文件

idea (95) 2023-03-24 22:20

大家好,我是编程小6,很高兴遇见你,有问题可以及时留言哦。

@Slf4j注解的简单使用教程

为什么使用@Slf4j?

  • 很简单的就是为了能够少写两行代码,不用每次都在类的最前边写上: private static final Logger logger = LoggerFactory.getLogger(this.XXX.class);

我们只需要在类前面添加注解@Slf4j,即可使用log日志的功能了

先放一张图来说明@Slf4j的方便之处: 使用slf4j注解log报错_slf4j日志输出到文件_https://bianchenghao6.com/blog_idea_第1张

怎么来使用@Slf4j

  • 使用十分方便,只是把以前,和以前的logger一样用,有info,debug,error等等
  • 划重点:要是用这个注解,最主要是依赖的引用!!!

依赖的引用

  1. 小型项目的使用 maven添加依赖:
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.16.10</version>
        </dependency>
        
         <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.28</version>
        </dependency>
        
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>1.7.28</version>
        </dependency>

这是三个依赖,其中slf4j-api的版本和slf4j-simple的版本要对应,你们用的时候直接复制就可以,这种最简单,不需要在配置什么的,可以直接打印在console上面,但是,这个这个。。他好像不能设置样式,输出默认是system.error级别的红色唉!(不对能设置样式,在这里因为小白没有深究,说以贴个地址,你们阔以先瞅瞅,回头在写个相关的配置:www.slf4j.org/api/org/slf…)

  1. 项目使用(slf4j+log4j12) 着重讲一下这个的maven添加依赖(因为网上现存的教程非常杂而且加了一堆的依赖)
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.16.10</version>
        </dependency>
        
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.7.28</version>
        </dependency>

哎!对,你没看错,只需要加两个依赖即可,就是这么简单,为什么呢?

因为:

使用slf4j注解log报错_slf4j日志输出到文件_https://bianchenghao6.com/blog_idea_第2张
slf4j-log4j12本身就依赖如图中的两个包,所以,加这么一个依赖,idea会自动将他所以来的两个包下载下来 (以下呢是参考于网络)

最关键的是这一步,配置log4j.properties

  1. 在resources文件夹下生成log4j.properties文件(创建的maven工程可能没有resources文件夹,那就创建一个,位置随便,但是一般是放在main文件夹下,和java文件夹同级的位置,需要把resources文件夹标志为source root,在idea编辑器下通过鼠标右键点击就可以);或者把该文件放在工程目录下,即和src同级的位置,因为该位置是默认的类路径,程序会自动去此处查找log4j.xml或log4j.properties文件。(idea如图:) 使用slf4j注解log报错_slf4j日志输出到文件_https://bianchenghao6.com/blog_idea_第3张

  2. 配置文件内容如下:

### 设置###
log4j.rootLogger = info,stdout,D,E

### 输出信息到控制抬 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n

### 输出DEBUG 级别以上的日志到=logs/error.log ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = logs/log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG 
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

### 输出ERROR 级别以上的日志到=logs/error.log ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File =logs/error.log 
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR 
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

如此,你就可以开心的使用@Slf4j的注解啦

发表回复