【二十九】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文件

留下如上内容。

2、增加configuration标签
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="false" scanPeriod="60 seconds" debug="false">
 
</configuration>
3、由于需要控制是否需要向日志文件输入就需要新增一个变量来控制一下,通过springProperty标签实现

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

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

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

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

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

7、再配置root标签

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

8、验证

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

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

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

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

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

       logback的笔记到此结束,欢迎交流。

相关实践学习
通过日志服务实现云资源OSS的安全审计
本实验介绍如何通过日志服务实现云资源OSS的安全审计。
目录
相关文章
|
5月前
|
缓存 Java 应用服务中间件
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
本文详解Spring Boot十大核心配置优化技巧,涵盖Tomcat连接池、数据库连接池、Jackson时区、日志管理、缓存策略、异步线程池等关键配置,结合代码示例与通俗解释,助你轻松掌握高并发场景下的性能调优方法,适用于实际项目落地。
821 5
|
11月前
|
存储 Java 文件存储
微服务——SpringBoot使用归纳——Spring Boot使用slf4j进行日志记录—— logback.xml 配置文件解析
本文解析了 `logback.xml` 配置文件的详细内容,包括日志输出格式、存储路径、控制台输出及日志级别等关键配置。通过定义 `LOG_PATTERN` 和 `FILE_PATH`,设置日志格式与存储路径;利用 `&lt;appender&gt;` 节点配置控制台和文件输出,支持日志滚动策略(如文件大小限制和保存时长);最后通过 `&lt;logger&gt;` 和 `&lt;root&gt;` 定义日志级别与输出方式。此配置适用于精细化管理日志输出,满足不同场景需求。
2637 1
|
11月前
|
Java 微服务 Spring
微服务——SpringBoot使用归纳——Spring Boot使用slf4j进行日志记录——使用Logger在项目中打印日志
本文介绍了如何在项目中使用Logger打印日志。通过SLF4J和Logback,可设置不同日志级别(如DEBUG、INFO、WARN、ERROR)并支持占位符输出动态信息。示例代码展示了日志在控制器中的应用,说明了日志配置对问题排查的重要性。附课程源码下载链接供实践参考。
1226 0
|
11月前
|
SQL Java 数据库连接
微服务——SpringBoot使用归纳——Spring Boot使用slf4j进行日志记录—— application.yml 中对日志的配置
在 Spring Boot 项目中,`application.yml` 文件用于配置日志。通过 `logging.config` 指定日志配置文件(如 `logback.xml`),实现日志详细设置。`logging.level` 可定义包的日志输出级别,例如将 `com.itcodai.course03.dao` 包设为 `trace` 级别,便于开发时查看 SQL 操作。日志级别从高到低为 ERROR、WARN、INFO、DEBUG,生产环境建议调整为较高级别以减少日志量。本课程采用 yml 格式,因其层次清晰,但需注意格式要求。
1048 0
|
11月前
|
Java API 开发者
微服务——SpringBoot使用归纳——Spring Boot使用slf4j进行日志记录——slf4j 介绍
在软件开发中,`System.out.println()`常被用于打印信息,但大量使用会增加资源消耗。实际项目推荐使用slf4j结合logback输出日志,效率更高。Slf4j(Simple Logging Facade for Java)是一个日志门面,允许开发者通过统一方式记录日志,无需关心具体日志系统。它支持灵活切换日志实现(如log4j或logback),且具备简洁占位符和日志级别判断等优势。阿里巴巴《Java开发手册》强制要求使用slf4j,以保证日志处理方式的统一性和维护性。使用时只需通过`LoggerFactory`创建日志实例即可。
745 0
|
7月前
|
机器学习/深度学习 XML Java
【spring boot logback】日志logback格式解析
在 Spring Boot 中,Logback 是默认的日志框架,它支持灵活的日志格式配置。通过配置 logback.xml 文件,可以定义日志的输出格式、日志级别、日志文件路径等。
1263 5
|
XML 安全 Java
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
4248 31
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
|
9月前
|
监控 容灾 算法
阿里云 SLS 多云日志接入最佳实践:链路、成本与高可用性优化
本文探讨了如何高效、经济且可靠地将海外应用与基础设施日志统一采集至阿里云日志服务(SLS),解决全球化业务扩展中的关键挑战。重点介绍了高性能日志采集Agent(iLogtail/LoongCollector)在海外场景的应用,推荐使用LoongCollector以获得更优的稳定性和网络容错能力。同时分析了多种网络接入方案,包括公网直连、全球加速优化、阿里云内网及专线/CEN/VPN接入等,并提供了成本优化策略和多目标发送配置指导,帮助企业构建稳定、低成本、高可用的全球日志系统。
942 54
|
监控 安全 Apache
什么是Apache日志?为什么Apache日志分析很重要?
Apache是全球广泛使用的Web服务器软件,支持超过30%的活跃网站。它通过接收和处理HTTP请求,与后端服务器通信,返回响应并记录日志,确保网页请求的快速准确处理。Apache日志分为访问日志和错误日志,对提升用户体验、保障安全及优化性能至关重要。EventLog Analyzer等工具可有效管理和分析这些日志,增强Web服务的安全性和可靠性。
428 9

热门文章

最新文章