[springboot]logback日志框架配置(1)

  • logging.pattern.console控制台输出日志的格式,为了在控制台调试时候显示效果更清晰,为日志增加了颜色。red、green等等
日志格式占位符

配合这张图,看一下占位符和logging.pattern.console格式配置之间的关系

在这里插入图片描述

  • %d{HH:mm:ss.SSS}:日志输出时间(red)

  • %thread:输出日志的进程名字,这在Web应用以及异步任务处理中很有用 (green)

  • %-5level:日志级别,并且使用5个字符靠左对齐 (highlight高亮蓝色)

  • %logger:日志输出类的名字 (boldMagenta粗体洋红色)

  • %msg:日志消息 (cyan蓝绿色)

  • %n:平台的换行符

二、使用logback-spring.xml实现日志配置


2.1.需求

一般情况下,使用全局配置文件application.yml或properties进行配置就足够了,如果您的日志输出需求特别复杂,可以考虑使用logback-spring.xml的配置方式。

spring boot 用自带的logback打印日志,多环境打印:

  1. 生产环境输出到控制台和文件,一天一个文件,保留30天.

  2. 开发环境输出到控制台和打印sql(mybatis)输出,生产环境不打印这个信息

  3. 测试环境只输出到控制台。不输出到文件

打印Mybatis SQL,只需要把使用到Mybatis的package的日志级别调整为DEBUG,就可以将SQL打印出来。

2.2.需求实现

因为logback是spring boot的默认日志框架,所以不需要引入maven依赖,直接上logback-spring.xml放在resources下面


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

<configuration>

    <!--引入默认的一些设置-->

    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>

    <!--web信息-->

    <logger name="org.springframework.web" level="info"/>



    <!--写入日志到控制台的appender,用默认的,但是要去掉charset,否则windows下tomcat下乱码-->

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

        <encoder>

            <pattern>${CONSOLE_LOG_PATTERN}</pattern>

        </encoder>

    </appender>



    <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->

    <property name="LOG_PATH" value="D:/logs/boot-launch"/>

    <!--写入日志到文件的appender-->

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

        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

            <!--日志文件输出的文件名,每天一个文件-->

            <FileNamePattern>${LOG_PATH}.%d{yyyy-MM-dd}.log</FileNamePattern>

            <!--日志文件保留天数-->

            <maxHistory>30</maxHistory>

        </rollingPolicy>

        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">

            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>

        </encoder>

        <!--日志文件最大的大小-->

        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">

            <MaxFileSize>10MB</MaxFileSize>

        </triggeringPolicy>

    </appender>



    <!--异步写日志到文件-->

    <appender name="asyncFileAppender" class="ch.qos.logback.classic.AsyncAppender">

        <discardingThreshold>0</discardingThreshold>

        <queueSize>500</queueSize>

        <appender-ref ref="FILE"/>

    </appender>



    <!--生产环境:打印控制台和输出到文件-->

    <springProfile name="prod">

        <root level="info">

            <appender-ref ref="CONSOLE"/>

            <appender-ref ref="asyncFileAppender"/>

        </root>

    </springProfile>



    <!--开发环境:打印控制台-->

    <springProfile name="dev">

        <!-- 打印sql -->

        <logger name="com.zimug.boot.launch" level="DEBUG"/>

        <root level="DEBUG">

            <appender-ref ref="CONSOLE"/>

        </root>

    </springProfile>



    <!--测试环境:打印控制台-->

    <springProfile name="test">

        <root level="info">

            <appender-ref ref="CONSOLE"/>

        </root>

    </springProfile>

</configuration>



异步日志配置:

  • 异步日志queueSize 默认值256,异步日志队列的容量。

  • discardingThreshold:当异步日志队列的剩余容量小于这个阈值,会丢弃TRACE, DEBUG or INFO级别的日志。如果不希望丢弃日志(即全量保存),那可以设置为0。但是当队列占满后,非阻塞的异步日志会变成阻塞的同步日志。所以在高并发低延迟要求的系统里面针对不重要的日志可以设置discardingThreshold丢弃策略,值大于0。

2.3.测试一下

上面配置完成之后,可以使用如下代码测试一下,是否满足了2.1节中提出的需求。


import org.slf4j.Logger;

import org.slf4j.LoggerFactory;



@RestController

public class LogTestController {

    private static final Logger logger = LoggerFactory.getLogger(LogTestController.class);



    @GetMapping("/testlog")

    public void test(){

        logger.trace("Trace 日志...");



## 结局:总结+分享

看完美团、字节、腾讯这三家的一二三面试问题,是不是感觉问的特别多,可能咱们真的又得开启面试造火箭、工作拧螺丝的模式去准备下一次的面试了。

开篇有提及我可是足足背下了**Java互联网工程师面试1000题**,多少还是有点用的呢,换汤不换药,不管面试官怎么问你,抓住本质即可!能读到此处的都是真爱

*   **Java互联网工程师面试1000题**

![image.png](https://img-blog.csdnimg.cn/img_convert/32f8fa6efa4fb3e155369084b896b20c.webp?x-oss-process=image/format,png)

而且从上面三家来看,算法与数据结构是必备不可少的呀,因此我建议大家可以去刷刷这本左程云大佬著作的 《程序员代码面试指南 IT名企算法与数据结构题目最优解》,里面近200道真实出现过的经典代码面试题。

*   **程序员代码面试指南--IT名企算法与数据结构题目最优解**

![image.png](https://img-blog.csdnimg.cn/img_convert/85381a08e9f243c282765a83106e8a93.webp?x-oss-process=image/format,png)


*   其余像设计模式,建议可以看看下面这4份PDF(已经整理)

![image.png](https://img-blog.csdnimg.cn/img_convert/3d9c3be7d1f74bebe637934664983949.webp?x-oss-process=image/format,png)


*   更多的Java面试学习笔记如下,关于面试这一块,我额外细分出Java基础-中级-高级开发的面试+解析,以及调优笔记等等等。。。

![image.png](https://img-blog.csdnimg.cn/img_convert/491e5aada80c1d2bfda4c48456653d4a.webp?x-oss-process=image/format,png)


以上所提及的全部Java面试学习的PDF及笔记,如若皆是你所需要的,那么都可发送给你!

H9uh158N-1718867940348)]


*   其余像设计模式,建议可以看看下面这4份PDF(已经整理)

[外链图片转存中...(img-dpJMF2lc-1718867940348)]


*   更多的Java面试学习笔记如下,关于面试这一块,我额外细分出Java基础-中级-高级开发的面试+解析,以及调优笔记等等等。。。

[外链图片转存中...(img-c6wJfaSn-1718867940349)]


以上所提及的全部Java面试学习的PDF及笔记,如若皆是你所需要的,那么都可发送给你!

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,Logback是一个快速、灵活和可扩展的Java日志框架Spring Boot是一个基于Spring框架的轻量级应用程序框架,为了简化开发者搭建基于Spring的应用程序,它提供了许多开箱即用的配置和工具。在使用Spring Boot开发应用程序时,我们可以使用Logback进行日志记录。 要配置Logback,我们需要进行以下步骤: 第一步是在pom.xml文件中添加依赖项。我们需要添加Spring Boot Starter Logging依赖项,这个依赖项将自动引入Logback的依赖项。我们可以添加以下依赖项: ``` <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </dependency> ``` 第二步是在src/main/resources目录下创建一个名为logback.xml的文件。这个文件包含了Logback配置信息。以下是一个简单的logback.xml文件: ``` <configuration> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d [%thread] %-5level %logger{35} - %msg%n</pattern> </encoder> </appender> <logger name="com.example" level="DEBUG"/> <root level="INFO"> <appender-ref ref="CONSOLE"/> </root> </configuration> ``` 在这个配置文件中,我们配置了一个名为CONSOLE的Appender来输出日志到控制台。我们还配置了一个名为com.example的Logger来记录这个包中的日志,级别为DEBUG。最后,我们将Appender添加到根Logger中。 第三步是在application.properties或application.yml文件中配置Logback的属性。例如,我们可以配置日志级别: ``` logging.level.com.example=debug ``` 以上是使用Spring BootLogback配置日志记录的三个步骤。这样我们就能够方便地记录日志,并且可以在需要时进行管理和分析。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值