springboot結合日志門面SLF4j和日志實現Logback的使用


一、此處主要介紹在springboot工程下如何使用 logback + slf4j  進行日志記錄。

logback主要包含三個組成部分:Loggers(日志記錄器)、Appenders(輸出目的在)、Layouts(日志輸出格式) 

slf4j :如jdbc一樣,定義了一套接口,是一個日志門面,可實現多個日志系統間快速切換(通過修改配置文件)

logback : 和log4j是同一作者,是log4j的升級版,效果可想而知.

logback 主要分為三個模塊,分別是:

  logback-core:提供基礎功能,是其他兩個模塊的基礎
  logback-classic : log4j的升級,實現了self4j api
  logback-access:用於與sevlet容器進行集成、提供網絡訪問日志的功能

二、初級日志門面SLF4j和日志實現Logback的使用

第一步使用springboot框架建立maven工程:

 

 

 

 

 

 

第二步在springboot框架的Maven工程中導入依賴:

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

 

 

第三步在test/java/com/imooc/新建LoggerTest.java

第一種使用:

private final Logger logger= LoggerFactory.getLogger(LoggerTest.class);
@RunWith(SpringRunner.class)
@SpringBootTest
public class LoggerTest {
    private final Logger logger= LoggerFactory.getLogger(LoggerTest.class);
    @Test
    public void test1(){
        logger.error("error...");
        logger.info("info...");
        logger.debug("debug...");
    }
}

日志輸出級別:數字越大,級別越高,優先輸出

 

 第二種使用:

@Slf4j
@RunWith(SpringRunner.class)
@SpringBootTest
@Slf4j
public class LoggerTest {
    @Test
    public void test1(){
        String name="yemeng";
        String password="123";
        log.info("name:{}, password:{}",name,password);
        log.error("error");
    }
}

 

 三、使用配置文件

1.application.yml

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    username: root
    password: 123456
    url: jdbc:mysql://192.168.1.110/sell?characterEncoding=utf-8&useSSL=false
  jpa:
    show-sql: true
#項目路徑
server:
  context-path: /sell
##日志
logging:
  #格式
  pattern:
    #日期+信息+換行
    console: "%d -%msg%n"
  #path: /var/log/tomcat/sell.log
  #日志存儲路徑
  file: /var/log/tomcat/sell.log
  #等級
  level: #debug
    com.imooc.LoggerTest:debug

2.logback-spring.xml

<?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>
                %msg%n
            </pattern>
        </layout>
    </appender>

<!-- 輸出info日志文件-->
    <appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--過濾策略-->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <!--丟棄匹配的日志等級-->
            <level>ERROR</level>
            <onMatch>DENY</onMatch>
            <onMismatch>ACCEPT</onMismatch>
        </filter>
        <encoder>
            <pattern>
                %msg%n
            </pattern>
        </encoder>
    <!-- 滾動的策略-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
    <!--  路徑-->
            <fileNamePattern>var/log/tomcat/info.%d.log</fileNamePattern>
        </rollingPolicy>
    </appender>

    <!-- 輸出error日志文件-->
    <appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--過濾策略-->
        <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>var/log/tomcat/error.%d.log</fileNamePattern>
        </rollingPolicy>
    </appender>

    <root level="info">
        <appender-ref ref="consoleLog"/>
        <appender-ref ref="fileInfoLog"/>
        <appender-ref ref="fileErrorLog"/>
    </root>
</configuration>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM