• 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

     
     
    1. "1.0" encoding="UTF-8"?>
    2. <project xmlns="http://maven.apache.org/POM/4.0.0"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    5. <parent>
    6. <artifactId>springboot-demoartifactId>
    7. <groupId>com.etgroupId>
    8. <version>1.0-SNAPSHOTversion>
    9. parent>
    10. <modelVersion>4.0.0modelVersion>
    11. <artifactId>logbackartifactId>
    12. <properties>
    13. <maven.compiler.source>8maven.compiler.source>
    14. <maven.compiler.target>8maven.compiler.target>
    15. properties>
    16. <dependencies>
    17. <dependency>
    18. <groupId>org.springframework.bootgroupId>
    19. <artifactId>spring-boot-starter-webartifactId>
    20. dependency>
    21. <dependency>
    22. <groupId>org.springframework.bootgroupId>
    23. <artifactId>spring-boot-autoconfigureartifactId>
    24. dependency>
    25. <dependency>
    26. <groupId>org.springframework.bootgroupId>
    27. <artifactId>spring-boot-starter-testartifactId>
    28. <scope>testscope>
    29. dependency>
    30. <dependency>
    31. <groupId>org.projectlombokgroupId>
    32. <artifactId>lombokartifactId>
    33. <version>1.16.20version>
    34. <scope>providedscope>
    35. dependency>
    36. dependencies>
    37. project>

    application.yaml

     
     
    1. server:
    2. port: 8088
    3. logging:
    4. config: classpath:logback-spring.xml

    logback-spring.xml

     
     
    1. "1.0" encoding="UTF-8"?>
    2. <configuration>
    3. <property name="LOG_PATH" value="logs" />
    4. <property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] %-40.40logger{39} : %msg%n" />
    5. <appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
    6. <layout class="ch.qos.logback.classic.PatternLayout">
    7. <pattern>
    8. %d{yyyy-MM-dd HH:mm:ss} [%thread] %magenta(%-5level) %green([%-50.50class]) >>> %cyan(%msg) %n
    9. pattern>
    10. layout>
    11. appender>
    12. <appender name="fileLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
    13. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
    14. <FileNamePattern>${LOG_PATH}/cms.%d{yyyy-MM-dd}.%i.logFileNamePattern>
    15. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
    16. <maxFileSize>100MBmaxFileSize>
    17. timeBasedFileNamingAndTriggeringPolicy>
    18. <MaxHistory>30MaxHistory>
    19. rollingPolicy>
    20. <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
    21. <pattern>${LOG_PATTERN}pattern>
    22. encoder>
    23. appender>
    24. <root level="info">
    25. <appender-ref ref="consoleLog" />
    26. <appender-ref ref="fileLog" />
    27. root>
    28. configuration>

    comtroller

     
     
    1. package com.et.logback.controller;
    2. import lombok.extern.slf4j.Slf4j;
    3. import org.springframework.stereotype.Controller;
    4. import org.springframework.web.bind.annotation.RequestMapping;
    5. import org.springframework.web.bind.annotation.ResponseBody;
    6. import java.util.HashMap;
    7. import java.util.Map;
    8. @Controller
    9. @Slf4j
    10. public class HelloWorldController {
    11. @RequestMapping("/hello")
    12. @ResponseBody
    13. public Map<String, Object> showHelloWorld(){
    14. log.info("info日志");
    15. Map<String, Object> map = new HashMap<>();
    16. map.put("msg", "HelloWorld");
    17. return map;
    18. }
    19. }

    代码仓库

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

    三、测试

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

    四、引用

    • https://logback.qos.ch/manual/layouts.html#coloring

    • http://www.liuhaihua.cn/archives/710275.html

    • https://blog.csdn.net/qq_41107231/article/details/117573372

  • 相关阅读:
    使用python制作一个简单的任务管理器
    QT 第五天 TCP通信与数据库
    逆向学习汇编篇:数据的存储与读取
    ROS2——参数(十二)
    1457_硬件设计_FCT介绍类基本知识整理
    TS 类型体操 之 extends,Equal,Alike 使用场景和实现对比
    typeHandlers标签和plugins标签
    2022前端面试题上岸手册-计算机网络部分
    vue防止用户连续点击造成多次提交
    【static】
  • 原文地址:https://blog.csdn.net/dot_life/article/details/136467132