`

SpringBoot-第十一章 Logback日志框架介绍和SpringBoot整合实战

 
阅读更多

1、logback介绍:基于Log4j基础上大量改良,不能单独使用,推荐配合日志框架SLF4J来使用

logback当前分成三个模块:logback-core,logback-classic和logback-access;

logback-core是其它两个模块的基础模块

 

2、Logback的核心对象:

Logger:日志记录器

Appender:指定日志输出的目的地,目的地可以是控制台,文件

Layout:日志布局 格式化日志信息的输出

Log4j日志转换为logback在线工具(支持log4j.properties转换为logback.xml,不支持 log4j.xml转换为logback.xml)

https://logback.qos.ch/translator/

 

SpringBoot默认加载logback日志文件的顺序logback-spring.xml logback.xml

配置文件结构:

<?xml version="1.0" encoding="UTF-8" ?>

<configuration>

<root level="INFO">

<appender-ref ref="consoleApp"/>

<appender-ref ref="fileInfoApp"/>

<appender-ref ref="fileErrorApp"/>

<appender name="consoleApp" class="ch.qos.logback.core.ConsoleAppender">....</appender>

#滚动模式,可以每天生成一个文件

<appender name="fileInfoApp" class="ch.qos.logback.core.rolling.RollingFileAppender">....</appender>

<appender name="fileErrorApp" class="ch.qos.logback.core.rolling.RollingFileAppender">....</appender>

</configuration>

 

 

具体文件如下:

 

<?xml version="1.0" encoding="UTF-8" ?>
<configuration>

	 <appender name="consoleApp" class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>
                %date{yyyy-MM-dd HH:mm:ss.SSS} %-5level[%thread]%logger{56}.%method:%L -%msg%n
            </pattern>
        </layout>
    </appender>

    <appender name="fileInfoApp" 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>
                %date{yyyy-MM-dd HH:mm:ss.SSS} %-5level[%thread]%logger{56}.%method:%L -%msg%n
            </pattern>
        </encoder>
        <!-- 滚动策略 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 路径 -->
            <fileNamePattern>app_log/log/app.info.%d.log</fileNamePattern>
        </rollingPolicy>
    </appender>

    <appender name="fileErrorApp" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>ERROR</level>
        </filter>
        <encoder>
            <pattern>
                %date{yyyy-MM-dd HH:mm:ss.SSS} %-5level[%thread]%logger{56}.%method:%L -%msg%n
            </pattern>
        </encoder>
        
        <!-- 设置滚动策略 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 路径 -->
            <fileNamePattern>app_log/log/app.err.%d.log</fileNamePattern>
            
            <!-- 控制保留的归档文件的最大数量,超出数量就删除旧文件,假设设置每个月滚动,
            且<maxHistory> 是1,则只保存最近1个月的文件,删除之前的旧文件 -->
             <MaxHistory>1</MaxHistory>
            
        </rollingPolicy>
    </appender>
   <root level="INFO">
        <appender-ref ref="consoleApp"/>
        <appender-ref ref="fileInfoApp"/>
        <appender-ref ref="fileErrorApp"/>
    </root>
</configuration>

 

@RestController
public class TestLogController
{
    private Logger logger = LoggerFactory.getLogger(UserController.class);
    @RequestMapping("/log")
    public void showLog()
    {
        logger.error("this is a error log");
        logger.warn("this is a warn log");
        logger.info("this is a info log");
        logger.debug("this is a debug log");
    }
}

 

根据上面配置文件的配置只打印INFO和以上级别的日志,DEBUG的日志不打印。

 

<level>ERROR</level>

<onMatch>DENY</onMatch>

<onMismatch>ACCEPT</onMismatch>

符合ERROR级别的日志拒绝,不符合ERROR的日志则打印。

 

<filter class="ch.qos.logback.classic.filter.ThresholdFilter">

<level>ERROR</level>

</filter>

打印ERROE以上级别的日志

 

 

 

分享到:
评论

相关推荐

    springboot-logback配置

    springboot-logback日志文件配置

    springboot-mybatis-druid-mongodb-logback-demo.zip

    《整合Springboot、Mybatis-Plus、MongoDB、Druid与Logback的实战解析》 在现代企业级应用开发中,快速构建高效稳定的系统是关键。Spring Boot以其便捷的起步和丰富的生态,成为了首选的开发框架。本次我们将深入...

    SpringBoot-logback

    SpringBoot是一个流行的Java开发框架,它简化了Spring应用的创建和配置。Logback则是SpringBoot常用的日志处理库,它提供了高效且灵活的日志记录功能。本项目"SpringBoot-logback"正是关于如何在SpringBoot应用中...

    SpringBoot日志处理之Logback1

    Logback是SpringBoot推荐的日志框架,由log4j的作者开发,具有更高的性能和更丰富的配置选项。在SpringBoot中,我们可以使用Logback来实现灵活的日志管理。 首先,日志级别是控制日志输出的关键。Logback和log4j都...

    logback日志框架所需要的jar包

    包含logback所需:logback-classic-1.1.7.jar、logback-classic-1.1.7-sources.jar、logback-core-1.1.7.jar、logback-core-1.1.7-sources.jar、slf4j-api-1.7.21.jar、slf4j-api-1.7.21-sources.jar

    springboot-mybatis-druid-mongodb-logback-swagger-demo.zip

    Logback允许自定义日志级别、格式和输出目的地,帮助开发者调试和追踪系统运行状况。 Swagger则是一个用于设计、构建、记录和使用RESTful web服务的工具,通过Swagger UI,开发者可以直观地查看和测试API接口,提升...

    springboot日志框架logback异步输出配置

    每次日志输出到文件都会进行一次磁盘IO,在多应用的时候这种效果会导致一定的线程运行延迟,所以可以采用异步的方式处理。 采用异步写日志的方式,通过不让主线程去写日志文件而减少磁盘IO,避免并发下造成线程阻塞...

    Java开发-日志管理-logback框架日志系统基础

    在日常工程开发中,日志是非常重要的一部分,通过日志可以迅速定位线上问题,日志框架也有很多选择,日志框架Logback和Log4j是同一个作者,Logback相比于Log4j,性能提高了10倍以上的性能,占用的内存也变小了,并且...

    最新SpringBoot框架后台管理模板(带权限控制)

    最新SpringBoot框架后台管理模板 本SpringBoot框架采用零xml配置,全部动态启动、支持热部署 框架结构清晰明了! 框架管理:maven 框架: 1.核心框架---------Spring-boot 2.数据源框架-------mybatis、HikariCP...

    SpringBoot+Logback实现一个简单的链路追踪功能

    本文将介绍如何利用Spring Boot和Logback来实现一个简单的链路追踪功能,以便更好地跟踪用户在系统中的操作。 链路追踪(Traceability)是指在分布式系统中跟踪单个请求从开始到结束的完整路径,这对于理解服务间的...

    springboot-integration-examples,springboot与其他常用技术的集成.zip

    6. 日志管理:SpringBoot内置了Logback和Log4j2的日志处理,开发者可以根据需求选择合适的日志框架。 四、开源项目"springboot-guide-master"解析 该项目包含了一系列示例代码,涵盖了上述集成技术的具体应用。通过...

    springboot-shiro权限管理系统.zip

    SpringBoot-Shiro系统通常会集成一个日志框架(如Log4j、Logback),并在Shiro的拦截器中记录用户的登录、退出、权限异常等事件。 7. **前端Bootstrap UI** 前端界面采用Bootstrap框架,它提供了丰富的响应式布局...

    springboot - 2.7.3版本 - (五)整合Elasticsearch+Logstash+Kibana(ELK)

    2. **设置日志框架**:选择Logback或Log4j2作为日志框架,并配置其输出格式,以便Logstash可以解析。 3. **安装Logstash**:在服务器上部署Logstash,配置输入插件(如beats或syslog)以接收Spring Boot应用的日志...

    springboot+logback输出日志文件1

    Spring Boot 提供了多种日志记录工具,包括 Logback、Log4J2 和 Java Util Logging。默认情况下,Spring Boot 使用 Logback 作为日志记录工具。在日志记录过程中,我们可以通过配置日志级别、输出目标和格式来控制...

    springboot-helloworld.rar

    8. **日志系统**:SpringBoot默认集成了Logback作为日志系统,且提供了一些简单的日志级别配置。 综上所述,"springboot-helloworld.rar"是一个典型的SpringBoot入门示例,涵盖了从项目初始化、编写简单控制器到...

    SpringBoot Logback配置,SpringBoot日志配置

    本文将深入探讨如何配置SpringBoot的Logback以满足不同日志需求。 首先,我们来看`logback-spring.xml`这个文件。它是Logback的日志配置文件,通过XML格式定义了日志的级别、输出位置、格式等。Spring Boot推荐使用...

    dubbo-springboot-demo

    《Dubbo与SpringBoot整合应用实战》 在现代企业级应用开发中,微服务架构逐渐成为主流,而Dubbo和SpringBoot作为两个重要的组件,分别在服务治理和服务启动方面发挥着重要作用。本教程将深入探讨如何将Dubbo与...

    SpringBoot WebService cxf接口发布以及logbok日志集成

    日志管理在任何应用程序中都是至关重要的,logback则是Java社区广泛使用的日志框架之一。它提供了高效的日志记录功能,并且与SLF4J(Simple Logging Facade for Java)接口兼容,使得更换日志实现变得简单。为了在...

    springboot-api-demo.rar

    在SpringBoot中,我们可以利用Logback或Log4j2等日志框架,配合自定义的日志配置,实现详细的日志记录和格式定制,便于调试和后期分析。日志信息包括请求参数、执行时间、异常堆栈等,有助于追踪系统运行状态。 ...

Global site tag (gtag.js) - Google Analytics