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

news2024/11/24 20:30:11

        本章节是记录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的笔记到此结束,欢迎交流。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1457398.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

unity学习(26)——客户端与服务器合力完成注册功能(8)json编解码问题,大结局

服务器端发送的内容如下&#xff1a; 客户端所接受的内容如下&#xff1a; 是一样的&#xff0c;不是传输问题&#xff0c;少了一个解码的过程&#xff0c;之前那个addMessage函数应该是不能解码的&#xff01; 具体解析一下数据包的内容&#xff1a;上边的是成功的&#xff0…

[杂记]mmdetection3.x中的数据流与基本流程详解(数据集读取, 数据增强, 训练)

之前跑了一下mmdetection 3.x自带的一些算法, 但是具体的代码细节总是看了就忘, 所以想做一些笔记, 方便初学者参考. 其实比较不能忍的是, 官网的文档还是空的… 这次想写其中的数据流是如何运作的, 包括从读取数据集的样本与真值, 到数据增强, 再到模型的forward当中. 0. MMDe…

线性规划单纯形法原理及实现

欢迎关注更多精彩 关注我&#xff0c;学习常用算法与数据结构&#xff0c;一题多解&#xff0c;降维打击。 本期话题&#xff1a;线性规划单纯形法原理及实现 标准化及单纯形方法 相关学习资料 https://www.bilibili.com/video/BV168411j7XL/?spm_id_from333.788&vd_so…

用于将Grafana默认数据库sqlite3迁移到MySQL数据库

以下是一个方案&#xff0c;用于将Grafana数据迁移到MySQL数据库。 背景: grafana 默认采用的是sqlite3&#xff0c;当我们要以集群形式部署的时使用mysql较为方便&#xff0c;试了很多sqlite转mysql的方法要么收费,最后放弃。选择自己动手风衣足食。 目标: 迁移sqlite3切换…

【深圳游戏业:腾讯引领小型公司创新求发展】

深圳游戏业&#xff1a; 腾讯引领小型公司创新求发展 一 深圳游戏公司主要类型 腾讯集团 作为中国最大的游戏公司&#xff0c;腾讯在游戏领域可以说是第一强者。2022年&#xff0c;腾讯的游戏业务营收高达1707亿元&#xff0c;约占了中国整个游戏市场总收入的64%。 刚开始时&…

【机器学习算法】KNN鸢尾花种类预测案例和特征预处理。全md文档笔记(已分享,附代码)

本系列文章md笔记&#xff08;已分享&#xff09;主要讨论机器学习算法相关知识。机器学习算法文章笔记以算法、案例为驱动的学习&#xff0c;伴随浅显易懂的数学知识&#xff0c;让大家掌握机器学习常见算法原理&#xff0c;应用Scikit-learn实现机器学习算法的应用&#xff0…

基于四足机器人和机械臂的运动控制系统(一)

文章目录 一、项目框架二、设计内容与功能需求1. 导航与路径规划2. 视觉感知3. 运动控制4. 精准遥控5. 环境探测6. 云端监控与数据分析7. 人机协同8. 充电桩9. 紧急响应与救援 三、硬件设计1. 四足机器人2. 机械臂3. 机器主控板4. 遥控器板5. 舵机驱动板 四、软件设计1. 环境2.…

【机器学习笔记】14 关联规则

关联规则概述 关联规则&#xff08;Association Rules&#xff09;反映一个事物与其他事物之间的相互依存性和关联性。如果两个或者多个事物之间存在一定的关联关系&#xff0c;那么&#xff0c;其中一个事物就能够通过其他事物预测到。 关联规则可以看作是一种IF-THEN关系。…

Sora:最强文生视频工具

Sora是什么 Sora&#xff0c;是一款能够根据文本创建出逼真的、富有想象力场景的AI模型。Sora能够娴熟地创造出高达一分钟的高清视频&#xff0c;其视觉内容丰富多样&#xff0c;分辨率精准无误。Sora的强大之处在于&#xff0c;它通过在视频和图像的压缩潜在空间中进行训练&a…

[ai笔记10] 关于sora火爆的反思

欢迎来到文思源想的ai空间&#xff0c;这是技术老兵重学ai以及成长思考的第10篇分享&#xff01; 最近sora还持续在技术圈、博客、抖音发酵&#xff0c;许多人都在纷纷发表对它的看法&#xff0c;这是一个既让人惊喜也感到焦虑的事件。openai从2023年开始&#xff0c;每隔几个…

SpringSecurity + OAuth2 详解

SpringSecurity入门到精通 ************************************************************************** SpringSecurity 介绍 **************************************************************************一、入门1.简介与选择2.入门案例-默认的登录和登出接口3.登录经过了…

笑营宝课后延时服务选课报名管理系统简介

课后延时服务是在“双减”政策背景下推向全国的校园服务。开展丰富多彩的课后服务&#xff0c;既解决家长负担&#xff0c;又能在校内提供作业辅导及素质提升课程&#xff0c;实现教育公平。是解决孩子三点半放学之后的校园服务&#xff0c;但也需要最大限度的降低学校老师的工…

基于java的企业校园招聘平台的设计与实现

分享一个自己的毕业设计&#xff0c;想要获取源码的同学加V&#xff1a;qq2056908377 链接&#xff1a;https://pan.baidu.com/s/1It0CnXUvc9KVr1kDcHWvEw 提取码&#xff1a;1234 摘要&#xff1a; 摘要&#xff1a;本毕业设计旨在设计和实现一个企业校园招聘平台&#xf…

【详细流程】vue+Element UI项目中使用echarts绘制圆环图 折线图 饼图 柱状图

vueElement UI项目中数据分析功能需要用到圆环图 折线图 饼图 柱状图等&#xff0c;可视化图形分析 安装流程及示例 1.安装依赖 npm install echarts --save2.在main.js中引入并挂载echarts import echarts from echarts Vue.prototype.$echarts echarts3.在需要使用echart…

代码随想录刷题笔记-Day20

1. 二叉树的最近公共祖先 236. 二叉树的最近公共祖先https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-tree/ 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个节点 p、q&#x…

RecombiMAb anti-mouse CD40,FGK4.5-CP133单克隆抗体

FGK4.5-CP133单克隆抗体是原始FGK4.5单克隆抗体的重组嵌合型抗体。可变结构域序列与原始FGK4.5克隆号相同&#xff0c;但是恒定区序列已经从大鼠IgG2a变为小鼠IgG2a。FGK4.5-CP133抗体像原始大鼠IgG2a抗体一样&#xff0c;不包含Fc突变。 FGK4.5-CP133单克隆抗体能与小鼠CD40(也…

压缩感知(Compressed Sensing,CS)的基础知识

压缩感知&#xff08;Compressed Sensing&#xff0c;CS&#xff09;是一种用于信号处理的技术&#xff0c;旨在以少于奈奎斯特采样定理所要求的样本频率来重构信号。该技术利用信号的稀疏性&#xff0c;即信号可以用较少的非零系数表示。压缩感知在图像获取中的应用使得在采集…

阿里云个人建站笔记

导航 一、购买ECS服务器二、配置mysql&#xff08;一&#xff09;安装Mysql步骤一&#xff1a;安装mysql步骤二&#xff1a;配置MySQL步骤三&#xff1a;远程访问MySQL数据库 &#xff08;二&#xff09;给实例配置安全组策略&#xff08;三&#xff09;设置防火墙 一、购买ECS…

防御保护——综合实验

拓扑图 实验需求&#xff1a; 1.Fw1和Fw2组成主备模式的双机热备 2.DMZ区存在两台服务器&#xff0c;现在要求生产区的设备仅能在办公时间&#xff08;9:00-18:00&#xff09;访问&#xff0c;办公区的设备全天都可以访问。 3.办公区设备可以通过电信链路和移动链路上网(多对多…

Linux 实例常用内核参数介绍—容器访问外部网络之ip_forward数据包转发

文章目录 1 问题解决1.1 问题1.2 原因1.3 解决临时打开永久打开 下面为扩展内容Linux 实例常用内核参数介绍:[https://cloud.tencent.com/document/product/213/46400](https://cloud.tencent.com/document/product/213/46400) 2 net.ipv4.ip_forward内核参数通俗解释3 在Linux…