SpringBoot集成logback打印彩色日志的代码实现

 更新时间:2024年03月05日 08:28:53   作者:HBLOG  
Logback是由log4j创始人设计的另一个开源日志组件,默认情况下,Spring Boot会用Logback来记录日志,并用INFO级别输出到控制台,本文给大家介绍了SpringBoot集成logback打印彩色日志,需要的朋友可以参考下

一、logback介绍

Logback是由log4j创始人设计的另一个开源日志组件,官方网站: logback.qos.ch。它当前分为以下三个模块:

  • logback-core:其它两个模块的基础模块。
  • logback-classic:它是log4j的一个改良版本,同时它完整实现了slf4j API使你可以很方便地更换成其它日志系统如log4j或JDK14 Logging。
  • logback-access:访问模块与Servlet容器集成提供通过Http来访问日志的功能。

默认情况下,Spring Boot会用Logback来记录日志,并用INFO级别输出到控制台。

二、代码工程

实验目标:实现springboot应用打印彩色日志

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>springboot-demo</artifactId>
        <groupId>com.et</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>logback</artifactId>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>
    <dependencies>

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

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-autoconfigure</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.16.20</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>
</project>

application.yaml

server:
  port: 8088
logging:
  config: classpath:logback-spring.xml

logback-spring.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <property name="LOG_PATH" value="logs" />
    <property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] %-40.40logger{39} : %msg%n" />

    <!-- 控制台输出 -->
    <appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
        <!-- 彩色日志 -->
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>
                %d{yyyy-MM-dd HH:mm:ss} [%thread] %magenta(%-5level) %green([%-50.50class]) >>> %cyan(%msg) %n
            </pattern>
        </layout>
    </appender>

    <!-- 按照每天生成日志文件 -->
    <appender name="fileLog"  class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--日志文件输出的文件名-->
            <FileNamePattern>${LOG_PATH}/cms.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
            <!--日志文件最大的大小-->
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>100MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <!--日志文件保留天数-->
            <MaxHistory>30</MaxHistory>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>${LOG_PATTERN}</pattern>
        </encoder>
    </appender>

    <!-- 日志输出级别 -->
    <root level="info">
        <appender-ref ref="consoleLog" />
        <appender-ref ref="fileLog" />
    </root>

</configuration>

comtroller

package com.et.logback.controller;

import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.HashMap;
import java.util.Map;

@Controller
@Slf4j
public class HelloWorldController {
    @RequestMapping("/hello")
    @ResponseBody
    public Map<String, Object> showHelloWorld(){
        log.info("info日志");
        Map<String, Object> map = new HashMap<>();
        map.put("msg", "HelloWorld");
        return map;
    }
}

代码仓库

https://github.com/Harries/springboot-demo

三、测试

启动springboot应用,查看控制台日志,打印彩色日志。如下图所示:

以上就是SpringBoot集成logback打印彩色日志的代码实现的详细内容,更多关于SpringBoot logback彩色日志的资料请关注脚本之家其它相关文章!

相关文章

  • Springboot启动报错Input length = 2的问题解决

    Springboot启动报错Input length = 2的问题解决

    最近使用Springboot启动报错,报错内容java.nio.charset.MalformedInputException: Input length = 2,下面就来介绍一下解决方法,感兴趣的可以了解一下
    2024-08-08
  • 详解OpenCV For Java环境搭建与功能演示

    详解OpenCV For Java环境搭建与功能演示

    这篇文章主要介绍了x详解OpenCV For Java环境搭建与功能演示,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • java模拟实现斗地主发牌小程序

    java模拟实现斗地主发牌小程序

    这篇文章主要为大家详细介绍了java模拟实现斗地主发牌小程序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-04-04
  • java CompletableFuture实现异步编排详解

    java CompletableFuture实现异步编排详解

    这篇文章主要为大家介绍了java CompletableFuture实现异步编排详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • Java Spring使用hutool的HttpRequest发送请求的几种方式

    Java Spring使用hutool的HttpRequest发送请求的几种方式

    文章介绍了Hutool库中用于发送HTTP请求的工具,包括添加依赖、发送GET和POST请求的方法,以及GET请求的不同参数传递方式,感兴趣的朋友跟随小编一起看看吧
    2024-11-11
  • Java IO流深入理解

    Java IO流深入理解

    这篇文章主要介绍了java IO流的深入理解,下面和小编来一起学习一下吧,希望能给你带来帮助,也希望您能够多多关注脚本之家的更多内容
    2021-07-07
  • Java线程池ThreadPoolExecutor原理及使用实例

    Java线程池ThreadPoolExecutor原理及使用实例

    这篇文章主要介绍了Java线程池ThreadPoolExecutor原理及使用实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • Hibernate对数据库删除、查找、更新操作实例代码

    Hibernate对数据库删除、查找、更新操作实例代码

    本篇文章主要介绍了Hibernate对数据库删除、查找、更新操作实例代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • IDEA中配置文件格式为UTF-8的操作方法

    IDEA中配置文件格式为UTF-8的操作方法

    这篇文章主要介绍了IDEA中配置文件格式为UTF-8的操作方法,第一个需要设置文件编码格式的位置,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-10-10
  • springboot+vue实现验证码功能

    springboot+vue实现验证码功能

    这篇文章主要为大家详细介绍了springboot+vue实现验证码功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08

最新评论