Spring boot整合logback 基础使用篇

1.背景

在搭建新的系统时候必不可少的是需要日志的,日志的作用就不用多说了吧,可以用来调试程序,记录程序运行的状态,最重要的是可以用来排查线上的问题。
那我们该如何在项目中使用日志呢?
SpringBoot内部集成了LogBack日志依赖,SpringBoot默认使用LogBack记录日志信息,默认根据base.xml配置内容来输出到控制台和文件之中,这是默认的配置不能达到企业级项目的要求。
本文重点在于说明在springboot中使用logback记录日志到控制台或者文件中。

2.日志组件的分类

  1. Log4j Apache Log4j是一个基于Java的日志记录工具。它是由Ceki Gülcü首创的,现在则是Apache软件基金会的一个项目。 Log4j是几种Java日志框架之一。
  2. Log4j 2 Apache Log4j 2是apache开发的一款Log4j的升级产品。
  3. Commons Logging Apache基金会所属的项目,是一套Java日志接口,之前叫Jakarta Commons Logging,后更名为Commons Logging。
  4. Slf4j 类似于Commons Logging,是一套简易Java日志门面,本身并无日志的实现。(Simple Logging Facade for Java,缩写Slf4j)。
  5. Logback 一套日志组件的实现(slf4j阵营)。

3.配置流程

1.创建springboot的web工程,这里就不详细说明了
2.创建好的工程目录结构如下在这里插入图片描述
这个时候我们使用默认的base.xml文件输出文件试一下,写如下测试代码并访问接口,结果如下:
在这里插入图片描述
默认输出了"----->test logback<-----",这是因为base.xml文件在起作用。
3.由于springboot默认继承了logback所以不需要添加任何依赖,需要说明一下的是本次使用的是lombok来简化使用logback进行测试的,通过注解@Slf4j可以很方便的打印日志
LogBack配置
LogBack读取配置文件的步骤
(1)尝试classpath下查找文件logback-test.xml
(2)如果文件不存在,尝试查找logback.xml
(3)如果两个文件都不存在,LogBack用BasicConfiguration自动对自己进行最小化配置,这样既实现了上面我们不需要添加任何配置就可以输出到控制台日志信息。如下图
在这里插入图片描述
4.在resources文件夹下创建logback.xml文件,并添加文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!--
	debug="true" 	启动时输出配置加载信息
	scan="true" 	默认每分钟自动扫描
	scanPeriod="30 seconds" 	设置每30秒自动扫描,若没有指定具体单位则以milliseconds为标准(单位:milliseconds, seconds, minutes or hours)
-->
<configuration scan="true" scanPeriod="2 seconds">

    <contextName>Demo3Logging</contextName>

    <property name="log.path" value="/opt"/>
    <!--项目名(我是直接在ROOT)-->
    <property name="logback.project.name" value="ROOT"/>
    <!--日志模块名(如:默认(default),销售(sales),订单(orders)...)-->
    <property name="logback.logs.module.name" value="default"/>
    <timestamp key="byDay" datePattern="yyyyMMdd"/>
    <!-- 控制台输出 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <!-- 日志输出编码 -->
        <layout class="ch.qos.logback.classic.PatternLayout">
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
            </pattern>
        </layout>
    </appender>
    <!-- 按照每天生成日志文件 -->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 该文件记录当天的日志,第二天这个文件中的昨天的内容会被放在一个单独的文件中,按照fileNamePattern命名格式的文件,这个文件保存当天的日志 -->
        <file>${log.path}/logs/all.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--日志文件输出的文件名,如果上面的file没有配置,那就一天一个文件-->
            <!--
            滚动时产生的文件的存放位置及文件名称 %d{yyyy-MM-dd}:按天进行日志滚动
  
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值