Spirngboot项目整合slf4j-log4j进行日志管理

本文介绍了如何在Springboot项目中整合slf4j-log4j进行日志管理。slf4j是一个日志系统的门面,允许在部署时灵活切换日志系统。在开发阶段遵循slf4j API,部署时通过添加相应的绑定器(如log4j)和配置文件实现日志系统转换。文中展示了在pom.xml中添加依赖、关闭Springboot内置日志、配置log4j.properties以及在Controller中使用日志的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

slf4j全称是:simple logging facade for java可以理解为简单日记门面。

准确的说,slf4j并不是一种具体的日志系统,而是一个用户日志系统的facade,它允许用户在部署最终应用时方便的变更其日志系统。

在系统开发中,统一按照slf4j的API进行开发,在部署时,选择不同的日志系统包,即可自动转换到不同的日志系统上。

比如:选择JDK自带的日志系统,则只需要将slf4j-api-1.5.10.jar和slf4j-jdk14-1.5.10.jar放置到classpath中即可,如果中途无法忍受JDK自带的日志系统了,想换成log4j的日志系统,仅需要用slf4j-log4j12-1.5.10.jar替换slf4j-jdk14-1.5.10.jar即可(当然也需要log4j的jar及配置文件)

下面简单展示一下在springboot项目下如何完成日志的配置和使用,我的项目中是使用了log4j的日志系统

pom.xml
在pom.xml中添加两个依赖,并关闭自带日志系统

        <!--去除自带日志-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.25</version>
        </dependency>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.7.25</version>
        </dependency>

log4j.properties
log4j.properties,log4j的配置文件放置在src/main/resources目录下

### 设置###
log4j.rootLogger = INFO,stdout,D,E,I


### 输出信息到控制抬 ###
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.Encoding = UTF-8
log4j.appender.D.File = /root/yw3/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.B.Encoding = UTF-8
log4j.appender.E.File =/root/yw3/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  

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

controller
controller中为日志的具体使用

package com.borya.controller;

@RestController
@RequestMapping("/movie")
public class movieController {

    @Autowired
    private movieService movieService;
    private static final Logger logger = LoggerFactory.getLogger(movieController.class);

    @RequestMapping(value = "/getAllMovie")
    public List<movie> getAllMovie(){
        List<movie> result = movieService.getAllMovie();
        logger.info("INFO[getAllMovieController:获取视频列表],OUT[数量:" + result.size() + "]");
        return result;
    }
}

简单的使用就是这样

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值