SpringBoot2.x 整合logback日志框架

【Log4j、Log4j2、logback、slf4j日志区别】

Log4j,Log4j2,logback,slf4j日志学习

log4j 已经很久没有维护更新,所以不推荐使用

推荐使用:Log4j2、logback

slf4j:日志门面

实际开发推荐使用: slf4j + logbackslf4j + Log4j2

因为SpringBoot 默认的日志框架是logback,所以下文主要讲解logback的使用


【logback 使用篇】

【SpringBoot项目】

SpringBoot项目默认的日志框架是 logback ,所以不需要引入maven依赖,
只需要添加logback-spring.xml即可
官方推荐使用logback-spring.xml命名,当然使用logback.xml也可以。
SpringBoot2.x 整合logback日志框架_第1张图片
【传统spring项目】

传统spring项目需要引入maven依赖

<dependencies>
    <dependency>
        <groupId>org.slf4jgroupId>
        <artifactId>slf4j-apiartifactId>
        <version>1.7.25version>
    dependency>
	<dependency>
		<groupId>org.slf4jgroupId>
		<artifactId>jul-to-slf4jartifactId>
		<version>1.7.25version>
	dependency>  
    <dependency>
        <groupId>ch.qos.logbackgroupId>
        <artifactId>logback-coreartifactId>
        <version>1.2.3version>
    dependency>
    <dependency>
        <groupId>ch.qos.logbackgroupId>
        <artifactId>logback-classicartifactId>
        <version>1.2.3version>
    dependency>
dependencies>

【logback-spring.xml】

在resources文件夹下,新建logback-spring.xml





<configuration scan="true" scanPeriod="30 seconds">
    
    <contextName>testcontextName>

    
    <property name="Log_Home" value="./logs"/>

    
    <appender name="FILE_INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${Log_Home}/info.logFile>
        
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>
                ${Log_Home}/info.%d{yyyy-MM-dd}.%i.log.gz
            FileNamePattern>
            
            <MaxHistory>12MaxHistory>
            <TimeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                
                <MaxFileSize>100MBMaxFileSize>
            TimeBasedFileNamingAndTriggeringPolicy>
        rollingPolicy>

        <encoder>
            <Pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} - %msg%nPattern>
        encoder>
    appender>

    
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            
            <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} - %msg%npattern>
        encoder>

    appender>

    
    
    <root level="ERROR">
        <appender-ref ref="STDOUT"/>
        <appender-ref ref="FILE_INFO"/>
    root>

configuration>

【调用代码】

方式一:【推荐】

使用lombok@Slf4j注解,其原理同方式二相同

import lombok.extern.slf4j.Slf4j;

@Slf4j
public class ApplicationMain {
    public static void main(String[] args) {
        log.info("hello world.");
    }
}

方式二:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class ApplicationMain {

    static Logger log = LoggerFactory.getLogger(ApplicationMain.class);

    public static void main(String[] args) {
        log.info("hello world.");
    }
}

【logback配置详解】

logback 常用配置详解


【推荐文章】

SpringBoot 2.x日志配置

Logback配置文件这么写,TPS提高10倍

你可能感兴趣的:(SpringBoot)