Spring boot 整合Logback过程示例解析
作者:Lxlxxx 发布时间:2021-12-06 04:05:52
前言
我们通常使用Spring boot做项目搭建的基础框架,必然少不了它的内置日志框架Logback,在spring-boot-starter的jar包下面包含了spring-boot-starter-logging包,该包就是内置的日志框架Logback。
默认Logback配置
我们在启动Spring boot项目的时候会发现,没有配置任何Log和日志打印的文件,控制台却输出了日志,这是源于logback的base.xml里面默认的root日志级别为INFO
在Logback里面默认的日志输出级别有三种WARN、INFO、DEBUG,在项目启动的时候选择Debug模式来启动,控制台会输出Debug级别日志。
自定义Logback文件
在项目的src/main/resources创建logback.xml文件,这里文件创建的命名规范官方给的推荐最好为logback-spring.xml,spring boot 的application.yml可以为它添加特有的配置项。
现在我们来看自定义logback文件的配置
首先是根节点的配置
scan : 当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。
scanPeriod : 设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。
和都是子节点
Appender用来格式化日志输出节点,有两个属性name和class,class用来指定哪种输出策略,常用就是控制台输出策略和文件输出策略。 同时可以指定日志文件的输出名、保留天数、文件大小、以及打印的日志级别。 可以定义多个Appender子节点来对需要输出的日志文件级别做控制。
layout:
关于标签,主要是做控制台的日志输出。
encoder:
主要是做日志文件的输出,主要是将个event事件转换成一组byte数组,其次是将转换后的字节数据输出到文件中
rollingPolicy:
TimeBasedRollingPolicy:它根据时间来制定滚动策略.时间滚动策略可以基于时间滚动按时间生成日志。
下面为我项目中对于root和logger的配置
启动项目控制台输出定义不同级别的日志
多环境日志输出
application.yml 会根据不同的环境读取对应的logback配置文件
来源:https://juejin.cn/post/7154300114490621965


猜你喜欢
- 1.Fork/Join框架简介Fork/Join 它可以将一个大的任务拆分成多个子任务进行并行处理,最后将子任务结果合并成最后的计算结果,并
- 一、点睛邻接矩阵通常采用一个一维数组存储图中节点的信息,采用一个二维数组存储图中节点之间的邻接关系。邻接矩阵可以用来表示无向图、有向图和网。
- 一、介绍本教程将介绍如何使用 mybatis-plus 工具自动给我们生成 Controller、Service、Entity、Mapper
- 全面解析java注解Java中的常见注解 a.JDK中的注解 @Override 覆盖父类或者父接口的方
- 1、回顾一下大家有没有注意到,目前讲到的所有 controller 中的方法接收到请求之后,都是有返回值的,返回值主要有 2 种类型:1、
- 前言笔者上次用C#写.Net代码差不多还是10多年以前,由于当时Java已经颇具王者风范,Net几乎被打得溃不成军。因此当时笔者对于这个.N
- 目录设置应用的名称,包名、应用图标和启动替换应用图标替换启动页设置访问权限配置版本发布参数生成应用签名修改配置文件打包注意事项设置应用的名称
- 一、概述近期注意到QQ新版使用了沉浸式状态栏,ok,先声明一下效果图:恩,接下来正题。首先只有大于等于4.4版本支持这个半透明状态栏的效果,
- 我就废话不多说了,大家还是直接看代码吧~package com.jalor;import java.util.ArrayList;impor
- 多态概述多态概念:所谓多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定
- Memcached 介绍Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据
- 一、准备工作小编今天以 QQ邮箱 进行演示操作。想要使用代码操作邮箱发送邮件,需要在邮箱设置中申请开通 POP3/SMTP 服务。接下来跟着
- 在程序设计过程中,我们总是希望自己设计的程序是天衣无缝的,但这几乎又是不可能的。即使程序编译通过,同时也实现了所需要的功能,也并不代表程序就
- 如下所示:for (int i= 0; i<= 1084; i++) {if (String.valueOf(i+1).length(
- 在使用STL容器(比如map、list、vector等)的时候,是用放一个对象还是放一个对象指针,即是用vector<int>还
- 用C#如何生成二维码,我们可以通过现有的第三方dll直接来实现,下面列出几种不同的生成方法:1.通过QrCodeNet(Gma.QrCode
- 本文实例讲述了Android编程中HTTP服务用法。分享给大家供大家参考,具体如下:在Android中,除了使用java.net包下的API
- Service是什么 Service是一个android 系统中的应用程序组件,它跟Activity的级别差不多,但是他没有图形化界面,不能
- clone()和Cloneable接口clone顾名思义就是克隆,即,复制一个相等的对象,但是不同的引用地址。我们知道拿到一个对象的地址,只
- 本人新手,有什么问题 还请指出来,大家一起学习进步,话不多说。首先,搭建dubbo项目,要有三个工程。它们分别是:maven java工程