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")@ResponseBodypublic 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应用,查看控制台日志,打印彩色日志。如下图所示: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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/725321.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【国家机构关系】

国家机构 ■ 国家机构■ 国家主席■ 中央军事委员会■ 权力机关■ 司法机关■ 人民政府■ 人民法院■ 人民检察院 ■ 监察机关■ 最高人民检察院■ 地方各级人民检察院■ 军事检察院 ■ 行政机关■ 中央行政机■ 地方行政机关■ 城市管理局&#xff08;城管&#xff09; ■ 民族…

板级PDN(电源分配网络)设计要点综述

目录 目标阻抗去耦方法 确定目标阻抗 确定目标频点 VRM 去耦电容 安装电感 平面电容 总结 去耦电容 PCB叠层设计 扩展阅读 目标阻抗去耦方法 确定PCB去耦方案的策略是使用频域目标阻抗法&#xff0c;通过层间电容和分立电容器组合的使用&#xff0c;保证电源轨阻抗在…

TypeScript学习笔记(上):TypeScript的介绍、安装及常用类型

我对TypeScript的理解就是&#xff0c;TypeScript是增加了类型校验的JavaScript&#xff0c;能够把运行期错误提升至编译期 TypeScript是什么&#xff1f; TypeScript&#xff08;简称&#xff1a;TS&#xff09;是 JavaScript 的超集&#xff08;JS 有的 TS 都有&#xff09…

【LeetCode】升级打怪之路 Day 15:二叉树解题的思维模式 —— 遍历、分解问题

今日题目&#xff1a; 226. 翻转二叉树101. 对称二叉树114. 二叉树展开为链表 目录 LC 226. 翻转二叉树 【easy】LC 101. 对称二叉树 ⭐⭐⭐LC 114. 二叉树展开为链表 ⭐⭐⭐ 今天的题目主要是对二叉树递归遍历的应用&#xff0c;东哥带你刷二叉树&#xff08;思路篇&#xff0…

java接口(interface)的编写以及实现(implements)

在Java中编写接口可以按照以下步骤进行操作&#xff1a; 首先定义一个新的文件并使用.java为后缀名。这将成为我们要创建的接口所在的类文件。 在该文件中&#xff0c;使用关键字 interface 来声明一个接口。例如&#xff1a;public interface MyInterface { }。 在接口内部&…

谈谈伦敦金操作策略中如何加码

在伦敦金操作策略中应该涉及加码的问题&#xff0c;什么叫加码呢&#xff1f;加码是指一笔伦敦金交易盈利以后&#xff0c;在市场中再注入资金进行加仓。在有利于自己的情况下&#xff0c;我们仓位越重&#xff0c;累积的盈利越多。而且这是在已经盈利的基础上加码&#xff0c;…

Java 学习和实践笔记(28):equals方法的使用

equals() 是Object类里的一个方法。而Object类是所有类的父类&#xff0c;所有的Java对象都拥有Object类的属性和方法。一切类&#xff0c;如果在类的声明中未使用extends&#xff0c;则默认继承Object类。如果声明了&#xff0c;那么Object类就变成该类的父类的父类的...类&am…

python+django高校澡堂洗浴浴室预约签到管理系统8d8c

本系统在设计过程中&#xff0c;高校洗浴管理系统的出现就有很大的需求。该系统可以很好地解决这些麻烦和问题。 很好地发挥了该开发方式的优势&#xff0c;让实现代码有了良好的可读性&#xff0c;而且使代码的更新和维护更加的方便&#xff0c;操作简单&#xff0c;对以后的维…

带你详细理解数组与指针(包含二维数组)

作者博客主页&#xff1a;谦逊码农的旅程 1. sizeof中单独放一个数组名&#xff0c;此时的数组名表示整个数组。 2. &数组名&#xff0c;表示整个数组的地址。 3. 在 C 语言中&#xff0c;变量的地址通常是由一个指针来表示&#xff0c;而指针的大小取决于计算机架构和操…

MySQL·SQL优化

目录 一 . 前言 二 . 优化方法 1 . 索引 &#xff08;1&#xff09;数据构造 &#xff08;2&#xff09;单索引 &#xff08;3&#xff09;explain &#xff08;4&#xff09;组合索引 &#xff08;5&#xff09;索引总结 2 . 避免使用select * 3 . 用union all代替u…

Linux之cd、pwd、mkdir 命令

cd命令&#xff0c;切换目录 1&#xff09;当Linux终端&#xff08;命令行&#xff09;打开的时候&#xff0c;会默认以用户的HOME目录作为当前的工作目录。 2&#xff09;我们可以通过cd命令&#xff0c;更改当前所在的工作目录。 3&#xff09;cd命令来自英文&#xff1a;C…

C#使用Stack类进行堆栈设计

目录 一、涉及到的知识点 1.栈定义 2.Stack类 二、 使用Stack类进行堆栈设计 1.创建一个新的Stack实例 2.然后&#xff0c;可以使用Push方法将元素添加到堆栈中 3.使用Pop方法从栈顶删除一个元素 4.使用Peek方法查看堆栈顶部的元素 三、实例 一、涉及到的知识点 1.栈…

java中的死锁问题

什么是死锁&#xff1f; 当多个线程持有不同的资源&#xff0c;并且互相等待对方释放资源时&#xff0c;就会导致死锁的发生。在死锁情况下&#xff0c;各个线程都无法继续向前执行&#xff0c;导致程序无法继续运行。 死锁的四个条件&#xff1f; 互斥条件&#xff1a;线程…

3.6消息队列

实现消息队列实现AB进程对话。 a.A进程发送一句话后&#xff0c;B进程接收到打印。然后B进程发送一句话&#xff0c;A进程接收后打印 b.重复上述步骤。直到AB接收或者发送完quit后&#xff0c;结束AB进程 A: #include <stdio.h> #include <sys/types.h> #inclu…

使用nvidia-ml-py事实监控GPU状态

平时监控GPU状态最常用的是watch配合nvidia-smi指令&#xff0c;但有时可能不仅仅需要监控&#xff0c;还需要记录状态数据&#xff0c;比如GPU的显存变化以及利用率变化等等。本文提供了一个使用nvidia-ml-py包编写的简易Demo&#xff0c;该Demo能够实现简易版的nvidia-smi功能…

C++之获取Windows系统信息

目录 1. 操作系统版本 2. 获取CPU信息 3. 获取内存信息 4. 获取硬盘信息 5.获取网络接口信息 6.获取计算机名称、用户名 在C中&#xff0c;你可以使用Windows API函数来获取Windows系统的各种信息。以下是一些常见的API函数和示例代码&#xff0c;用于获取Windows系统信息…

⁴ 细说IT从业者35岁,真的是职业的转折点吗

IT从业者如何跨过35岁职业门槛是一个很重要的问题。 一 虽然年龄可能会成为一些公司在招聘过程中的考虑因素&#xff0c;但是有一些方法可以帮助你克服这个挑战并继续在IT行业中发展。 首先&#xff0c;持续学习和自我提升非常重要。随着科技的不断发展&#xff0c;IT行业也在不…

STM32使用标准库编写外部时钟控制oled显示计数(proteus仿真)

这节课的结果是在上节课的基础上更改的&#xff1a;电路图为&#xff1a;用一个开关来模拟外部时钟的高低电平的变化。 当然也可以配置一个外部时钟来模拟&#xff0c;也是可以的&#xff1a; 由于这节课的代码是在上节课的基础上有一点修改而来的&#xff0c;所以就只把更改的…

【python高级编程教程】笔记(python教程、python进阶)第三节:(1)多态与鸭子类型(Polymorphism and Duck Typing)

参考文章1&#xff1a;【比刷剧还爽】清华大佬耗时128小时讲完的Python高级教程&#xff01;全套200集&#xff01;学不会退出IT界&#xff01; 参考文章2&#xff1a;清华教授大力打造的Python高级核心技术&#xff01;整整100集&#xff0c;强烈建议学习&#xff08;Python3…

Linux系统运维脚本:备份mysql数据库,并删除旧的数据库备份文件(保留最新的数据库备份)

目 录 一、要求 二、解决方案 &#xff08;一&#xff09;解决思路 &#xff08;二&#xff09;方案 三、脚本程序实现 &#xff08;一&#xff09;脚本代码和解释 1、脚本代码 2、代码解释 &#xff08;二&#xff09;脚本验证 1、脚本编辑 2、给予执行权…