【二十八】springboot整合logback实现日志管理

这篇具有很好参考价值的文章主要介绍了【二十八】springboot整合logback实现日志管理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        本章节是记录logback在springboot项目中的简单使用,本文将会演示如何通过logback将日志记录到日志文件或输出到控制台等管理操作。将会从以下几个方面进行讲解。最后实现将特定级别的特定日志保存到日志文件。

一、依赖

<dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.2.10</version>
        </dependency>

        <dependency>
            <groupId>org.codehaus.janino</groupId>
            <artifactId>janino</artifactId>
            <version>3.0.6</version>
        </dependency>

以上版本只是测试时使用,实际版本根据项目来。 

二、标签介绍

1、configuration

logback配置文件的根标签

属性:

scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。
scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒,当scan为true时,此属性生效。默认的时间间隔为1分钟。
debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false
2、springProperty

我理解的是配置常量值的数据来源和默认值

属性:

scope:作用域
name:变量名称
source:数据来源
defaultValue:默认值
3、property

定义常量和给常量赋值

属性:

name:常量名称
value:常量值
4、appender

日志的具体格式或者保存地址等配置处理

属性:

name:appender的名字
class:类型,有ConsoleAppender、RollingFileAppender、AsyncAppender、FileAppender。ConsoleAppender:控制台日志。
RollingFileAppender:滚动文件日志,继承于FileAppender,使用更便捷。
AsyncAppender:异步日志,相较于其他的,他不负责处理日志,只是将日志缓冲到一个BlockingQueue里面去,并在内部创建一个工作线程从队列头部获取日志,之后将获取的日志循环记录到附加的其他 appender上去,从而达到不阻塞主线程的效果。因此AsynAppender仅仅充当事件转发器,必须引用另一个appender来做事。
FileAppender:文件日志,我们不做演示,就用RollingFileAppender演示,功能差不多。
5、logger

单独对某种日志做处理

6、root

统一的所有日志的处理(除了logger处理的)

三、实例演示

        加入现在我有这样一个需求:1、项目本身的日志我想记录下来保存文件并打印控制台;2、springfox.documentation这个包下面关于swagger的日志我觉得没有用处并不想存入文件只打印控制台就可以了;3、其他的第三方包该输出什么日志就都保存文件并打印控制台不做干涉;4、我还想做一个配置可以控制向日志文件输出的开关。

有了这个需求,我们就可以开始做了。

1、新建一个xml文件

【二十八】springboot整合logback实现日志管理,spring boot,logback,java

【二十八】springboot整合logback实现日志管理,spring boot,logback,java

留下如上内容。

2、增加configuration标签
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="false" scanPeriod="60 seconds" debug="false">

</configuration>
3、由于需要控制是否需要向日志文件输入就需要新增一个变量来控制一下,通过springProperty标签实现

【二十八】springboot整合logback实现日志管理,spring boot,logback,java

        我们后面需要指定一个文件存日志,文件名就叫项目名,所以再增加一个项目名变量,同样通过springProperty标签实现。

【二十八】springboot整合logback实现日志管理,spring boot,logback,java

【二十八】springboot整合logback实现日志管理,spring boot,logback,java

4、通过property标签新增几个常量来统一一下文件配置的一些值

【二十八】springboot整合logback实现日志管理,spring boot,logback,java

5、通过appender标签实现日志的处理规则

【二十八】springboot整合logback实现日志管理,spring boot,logback,java

        新增三个类型的appender,class如上固定路径。设置编码格式和输出格式等。异步日志appender绑定到name为rolling的滚动日志即为实际是走name为rolling的appender逻辑,只是先到async缓冲一下。

6、新增logger便签,配置成项目本身的日志通过变量来控制是否输入到日志文件,而springfox.documentation这个包只输出到控制台

【二十八】springboot整合logback实现日志管理,spring boot,logback,java

7、再配置root标签

【二十八】springboot整合logback实现日志管理,spring boot,logback,java

        没有特别定义则默认为root,任何一个类只会和一个logger对应。

8、验证

【二十八】springboot整合logback实现日志管理,spring boot,logback,java

        随便增加一个项目本身的日志输出,启动项目。

【二十八】springboot整合logback实现日志管理,spring boot,logback,java

        可以看到多了一个日志文件。

【二十八】springboot整合logback实现日志管理,spring boot,logback,java

        可以看到特殊处理的包日志文件没有,而控制台存在。

【二十八】springboot整合logback实现日志管理,spring boot,logback,java

        而项目本身的日志确实是都存在。手动清空日志文件,并将配置改为关闭,重启项目。

【二十八】springboot整合logback实现日志管理,spring boot,logback,java

【二十八】springboot整合logback实现日志管理,spring boot,logback,java

        可以看到确实没有向日志文件输出了,控制台的日志也明显较少,只有项目本身的日志和springfox.documentation的日志了。

【二十八】springboot整合logback实现日志管理,spring boot,logback,java

        logback的笔记到此结束,欢迎交流。 文章来源地址https://www.toymoban.com/news/detail-829247.html

到了这里,关于【二十八】springboot整合logback实现日志管理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • logback整合rabbitmq实现消息记录日志

    logback.xml文件配置 yml文件配置 代码配置rabbitmq信息 测试客户端 此外,如果要对日志进行链路标记,可以是用MDC

    2024年02月05日
    浏览(45)
  • springboot日志使用 SLF4J+Logback 实现(springboot默认的日志实现),日志打印到控制台及日志输出到指定文件

    还是直接上代码 @Slf4j 这玩意 默认支持 不用引入 yml 配置文件 下面分享 xml 方式 在 资源目录下创建 logback-spring.xml 粘贴走 即可 重启 看控制台变化 还有磁盘 有没有写入 坑 : 我在创建的时候 发现 xml 没有生效 排查了半天 发现 在创建 logback-spring.xml 这个文件的时候 我不是手

    2024年04月22日
    浏览(80)
  • 23、springboot日志使用入门-- SLF4J+Logback 实现(springboot默认的日志实现),日志打印到控制台及日志输出到指定文件

    就是springboot的默认的日志依赖实现。创建项目的时候存在这个依赖里面。 下面的日志实现就是基于 SLF4J+Logback SLF4J+Logback:SLF4J是门面,Logback是实现 设置日志的级别,可通过以下方式: ▲ 改变Spring Boot的核心日志级别 ▲ 改变程序组件(包括所有各种框架)的核心日志级别

    2024年02月03日
    浏览(61)
  • spring整合logBack日志框架:

    SLF4J(Simple Logging Facade for Java)是一种日志规范,类似于JDBC,我们常用的日志log4j、logback等都实现了这个规范,所以我们可以直接使用SLF4J的规范来使用日志。 它们是同一个作者开发的,logback是重新编写的内核,在一些关键执行的路径上提升了10倍以上。它也支持了一些新的

    2024年02月12日
    浏览(41)
  • Logback:SpringBoot 2.0 整合 Logback (kafaka es)

    1. 规范了日志的打印格式    2. 增加了彩色日志输出   3. 支持异步推送kafka   4. 日志文件压缩功能 我们无需关心 Logback 版本,只需关注 Boot 版本即可,Parent 工程自动集成了 Logback。Springboot 本身就可以打印日志,为什么还需要规范日志? 日志统一,方便查阅管理。 日志归

    2024年04月22日
    浏览(34)
  • springboot 日志配置(logback)

    Java 中的日志框架主要分为两大类: 日志门面 和 日志实现 。 Java 中的日志体系: 日志门面 日志门面定义了一组日志的接口规范,它并不提供底层具体的实现逻辑。 Apache Commons Logging 和 Slf4j ( Simple Logging Facade for Java 简单日志门面) 就属于这一类。 日志门面的作用:解决系

    2024年02月09日
    浏览(40)
  • springboot logback日志+异常+阿里云日志 aliyun-log-logback-appender

    前言 最近有个新项目用了,springboot3.0,以前项目日志保存得方式是阿里云云服务自动读取日志文件,最近项目部署得方式可能有变化,所以新项目用logback+aliyun-log-logback-appender得方式保存到阿里云日志服务。用logback得原因主要是懒,spring默认就是这个,其他还要各种配置和

    2024年02月10日
    浏览(46)
  • SpringBoot Logback修改日志级别

     1. 在application.yml 通过配置配置,按住Ctrl + 左键可以看源码 2. 自己写接口直接动态修改日志级别,读取application.yml配置文件算是间接修改  

    2024年01月19日
    浏览(46)
  • springboot中logback日志配置

    Spring Boot使用Apache的Commons Logging作为内部的日志框架,其仅仅是一个日志接口,在实际应用中需要为该接口来指定相应的日志实现。 Spring Boot从1.4版本开始内置的日志框架就是Logback;Spring Boot 2.x 默认采用了slf4j+logback的形式,slf4j也是个通用的日志门面。 SpringBoot可以适配所有

    2024年02月16日
    浏览(47)
  • Springboot整合AOP实现日志的保存

    1.定义注解 2.编写切面的实现 3.测试

    2024年02月09日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包