当前位置: 首页 > news >正文

Springboot使用logback

文章目录

目录

文章目录

前言

一、添加依赖

二、使用步骤

三 、测试使用 

总结



前言

Logback 是log4j 框架的作者开发的新一代日志框架,它效率更高、能够适应诸多的运行环境,同时天然支持 SLF4J。

Logback 的定制性更加灵活,同时也是 SpringBoot 的内置日志框架。


一、添加依赖

<dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-web</artifactId></dependency>

二、使用步骤

在配置文件中 修改配置

# 日志配置
logging:level:root: infocom.wise: infoorg.springframework: infocom.baomidou.mybatisplus: info config: classpath:logback.xml

在同级目录下的日志模板文件 logback.xml


<?xml version="1.0" encoding="UTF-8"?>
<configuration><property name="log.path" value="./logs"/><property name="console.log.pattern"value="%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(%-5level) %magenta(${PID:-}) - %green([%-21thread]) %cyan(%-35logger{30}) %msg%n" /><property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n"/><!-- 控制台输出 --><appender name="console" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>${console.log.pattern}</pattern><charset>utf-8</charset></encoder></appender><!-- 文件输出 --><appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender"><filter class="ch.qos.logback.classic.filter.LevelFilter"><!-- 过滤的级别 --><level>INFO</level><!-- 匹配时的操作:接收(记录) --><onMatch>ACCEPT</onMatch><!-- 不匹配时的操作:拒绝(不记录) --><onMismatch>DENY</onMismatch></filter><file>${log.path}/sys-info.log</file><!-- 循环政策:基于时间创建日志文件 --><rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"><!-- 日志文件名格式 --><fileNamePattern>${log.path}/sys-info.%d{yyyy-MM-dd}.%i.log</fileNamePattern><maxHistory>30</maxHistory><totalSizeCap>20KB</totalSizeCap><maxFileSize>10KB</maxFileSize><!-- appender启动时,进行一次日志文件清理(作用:有些存活很短时间的应用,没机会进行文件清理) --><cleanHistoryOnStart>true</cleanHistoryOnStart></rollingPolicy><encoder><pattern>${log.pattern}</pattern></encoder></appender><appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender"><filter class="ch.qos.logback.classic.filter.LevelFilter"><!-- 过滤的级别 --><level>ERROR</level><!-- 匹配时的操作:接收(记录) --><onMatch>ACCEPT</onMatch><!-- 不匹配时的操作:拒绝(不记录) --><onMismatch>DENY</onMismatch></filter><file>${log.path}/sys-error.log</file><!-- 循环政策:基于时间创建日志文件 --><rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"><!-- 日志文件名格式 --><fileNamePattern>${log.path}/sys-error.%d{yyyy-MM-dd}.%i.log</fileNamePattern><maxHistory>30</maxHistory><totalSizeCap>20KB</totalSizeCap><maxFileSize>10KB</maxFileSize><!-- appender启动时,进行一次日志文件清理(作用:有些存活很短时间的应用,没机会进行文件清理) --><cleanHistoryOnStart>true</cleanHistoryOnStart></rollingPolicy><encoder><pattern>${log.pattern}</pattern></encoder></appender><!-- 系统日志输出 --><appender name="file_debug" class="ch.qos.logback.core.rolling.RollingFileAppender">    <filter class="ch.qos.logback.classic.filter.LevelFilter"><!-- 过滤的级别 --><level>DEBUG</level></filter><file>${log.path}/sys-debug.log</file><rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"><fileNamePattern>${log.path}/sys-debug.%d{yyyy-MM-dd}.%i.log</fileNamePattern><maxHistory>30</maxHistory><totalSizeCap>20KB</totalSizeCap><maxFileSize>10KB</maxFileSize><!-- appender启动时,进行一次日志文件清理(作用:有些存活很短时间的应用,没机会进行文件清理) --><cleanHistoryOnStart>true</cleanHistoryOnStart></rollingPolicy><encoder><pattern>${log.pattern}</pattern></encoder></appender>  <!-- 用户访问日志输出  --><appender name="sys_user" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${log.path}/sys_user.log</file><rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"><fileNamePattern>${log.path}/sys-user.%d{yyyy-MM-dd}.%i.log</fileNamePattern><maxHistory>30</maxHistory><totalSizeCap>20KB</totalSizeCap><maxFileSize>10KB</maxFileSize><!-- appender启动时,进行一次日志文件清理(作用:有些存活很短时间的应用,没机会进行文件清理) --><cleanHistoryOnStart>true</cleanHistoryOnStart></rollingPolicy><encoder><pattern>${log.pattern}</pattern></encoder></appender><root level="info"><appender-ref ref="console"/></root><!--系统操作日志--><root level="error"><appender-ref ref="file_error"/></root><!--系统操作日志--><root level="info"><appender-ref ref="file_info"/><appender-ref ref="file_error"/></root><!--系统操作日志--><root level="debug"><appender-ref ref="file_debug"/><appender-ref ref="file_info"/><appender-ref ref="file_error"/></root>    <!--系统用户操作日志--><logger name="sys_user" level="info"><appender-ref ref="sys_user"/></logger>
</configuration>

三 、测试使用 

在需要日志记录的类上添加该注解@Slf4j,然后直接使用下面的就能打印日志了log.info("这是一条测试info日志");log.warn("这是一条测试info日志:{}", "warn");log.error("这是一条测试info日志", e);


总结

相关文章:

Springboot使用logback

文章目录 目录 文章目录 前言 一、添加依赖 二、使用步骤 三 、测试使用 总结 前言 Logback 是log4j 框架的作者开发的新一代日志框架&#xff0c;它效率更高、能够适应诸多的运行环境&#xff0c;同时天然支持 SLF4J。 Logback 的定制性更加灵活&#xff0c;同时也是 Sprin…...

【REST2SQL】03 GO读取JSON文件

REST2SQL需要一些配置信息&#xff0c;用JSON文件保存&#xff0c;比如config.json 1 创建config.json配置文件 {"hostPort":"localhost:5217","connString":"oracle://blma:5217127.0.0.1:1521/CQYH","_oracle":"ora…...

数据库-MySQL 启动方式

以管理员身份运行命令行 或者Shell net start //查看所有服务 net start MYSQL80 //启动服务 net stop MYSQL80 //停止服务完整安装MySQL社区版本的 会有这个 启动服务 停止服务 重启服务...

YAML使用

yaml yaml是类型aml&#xff0c;json的标记性语言&#xff0c;它强调以数据为中心 yaml的语法主要是如下几个&#xff1a; 大小写敏感 使用缩进表示层级关系 缩进不允许使用tab、只允许空格&#xff08;低版本限制&#xff0c;高版本不限制&#xff09; 缩进时空格数不重要&a…...

读书之深入理解ffmpeg_简单笔记2(初步)

再回看第一遍通读后的笔记&#xff0c;感觉还有很多的细节需要一一攻克,。 mp4的封装格式&#xff0c;解析方式。 flv的封装格式&#xff0c;解析方式。 ts的封装格式&#xff0c;解析方式。 第四章 封装和解封装 4.2 视频文件转flv &#xff08;头文件和文件内容&#xff0…...

ELK+kafka+filebeat企业内部日志分析系统搭建

看上面的拓扑图&#xff0c;我们至少准备七台机器进行下面的实验项目。 机器主要作用分布如下: 三台安装elasticsearch来搭建ES集群实现高可用&#xff0c;其他机器就依次安装filebeat,kafka,logstash和kibana软件 一、部署elasticsearch来搭建ES集群 1.安装jdk 由于ES运行…...

勒索检测能力升级,亚信安全发布《勒索家族和勒索事件监控报告》

评论员简评 近期(12.08-12.14)共发生勒索事件119起&#xff0c;相较之前呈现持平趋势。 与上周相比&#xff0c;近期仍然流行的勒索家族为lockbit3和8base。在涉及的勒索家族中&#xff0c;活跃程度Top5的勒索家族分别是&#xff1a;lockbit3、siegedsec、dragonforce、8base和…...

编译原理复习的有用链接

2024年1月7日&#xff0c;考完编译原理&#xff0c;是时候和考试时候的她说再见了&#xff0c;整理一些收藏夹里的链接和思考吧 实验看这里&#xff1a; 编译原理_HNU岳麓山大小姐的博客-CSDN博客 课后习题看这里&#xff1a; 编译原理作业答案github LL1文法复习 [编译原…...

不带控制器打包exe,转pdf文件时失败的原因

加了注释的两条代码后&#xff0c;控制器会显示一个docx转pdf的进度条。这个进度条需要控制器的实现&#xff0c;如果转exe不带控制器的话&#xff0c;当点击转换为pdf的按钮就会导致程序出错和闪退。 __init__.py文件的入口...

Python 注释的方法

在Python中&#xff0c;有两种常见的注释方法&#xff1a; 单行注释&#xff1a;使用#符号来注释一行代码。在#符号后面的内容将被视为注释&#xff0c;不会被解释器执行&#xff0c;如&#xff1a; # 这是一个单行注释 print(hello world!) # 打印字符串多行注释&#xff1…...

webman插件创建

webman插件创建 介绍 应用插件实际上是一个完整的应用&#xff0c;它能以插件的形式安装到主项目中&#xff0c;使主项目快速获得某个模块功能。 例如&#xff1a;主项目需要一个问答系统&#xff0c;则可以安装一个问答应用插件&#xff0c;需要一个商城系统&#xff0c;则安…...

大模型迎来“AppStore时刻”,OpenAI给2024的新想象

一夜之间&#xff0c;OpenAI公布了多个重磅消息&#xff0c;引发市场关注。 钛媒体App 1月5日消息&#xff0c;今晨&#xff0c;OpenAI公司向所有GPT开发者们发布一封邮件称&#xff0c;下周将上线自定义的“GPT Store”商店&#xff0c;这有望推动ChatGPT开发者生态不断完善。…...

ubuntu解决在pycharm上使用jupyter无法导入虚拟环境中的包的问题

ubuntu解决在pycharm上使用jupyter无法导入虚拟环境中的包的问题 根本原因是jupyter 没有和他对应的kernel 需要先使用命令行建立kernel 下载ipykernel pip install ipykernel 首先激活conda conda activate然后添加你的kernel到虚拟环境 python -m ipykernel install -…...

探索2024年软件测试的几大主导趋势

进入2024年&#xff0c;考虑影响测试环境的问题至关重要。这种思考将成为团队了解主要瓶颈和实现当今不断提高的期望的首要因素。 01 了解关键测试瓶颈 毋庸置疑&#xff0c;现代团队需要不断创新、适应和拥抱最新趋势&#xff0c;以保持竞争力并提供以客户为中心的解决方案。尽…...

Linux C语言 48-信号总结

Linux C语言 48-信号总结 本节关键字&#xff1a;Linux、C语言、常用信号 相关C库函数&#xff1a;printf、signal、kill Linux中都有哪些信号 信号在Linux操作系统中是很重要的&#xff0c;信号的产生方式可以是来自键盘、由软件条件产生、调用硬件异常产生。来自系统函数调…...

【vue技巧】之如何让mixin的data 比本身vue的data优先级要高

GPT4.0国内站点&#xff1a;海鲸AI 在 Vue 中&#xff0c;当组件和 mixin 包含有冲突的选项时&#xff0c;这些选项将以一定的方式合并。对于 data 选项&#xff0c;组件自身的 data 会优先级更高&#xff0c;这意味着如果组件和 mixin 中出现了相同的字段&#xff0c;组件的数…...

全解析阿里云Alibaba Cloud Linux镜像操作系统

Alibaba Cloud Linux是基于龙蜥社区OpenAnolis龙蜥操作系统Anolis OS的阿里云发行版&#xff0c;针对阿里云服务器ECS做了大量深度优化&#xff0c;Alibaba Cloud Linux由阿里云官方免费提供长期支持和维护LTS&#xff0c;Alibaba Cloud Linux完全兼容CentOS/RHEL生态和操作方式…...

什么是数据结构?

1、一种非常经典的数据结构。 栈数据结构&#xff1a;stack 2、什么是数据结构&#xff1f; 数据结构通常是&#xff1a;存储数据的容器。而该容器可能存在不同的结构。 数据结构和 java 语言实际上是没有关系&#xff0c;数据结构是一门独立的学科。 在大学计算机专业中&#…...

GOOS=darwin 代表macOS环境

GOOSdarwin 是一个环境变量设置&#xff0c;表示目标操作系统为 macOS。 在Go语言中&#xff0c;可以使用环境变量 GOOS 来指定目标操作系统&#xff0c;用于交叉编译或跨平台开发。darwin 是指苹果公司的操作系统系列&#xff0c;主要是 macOS。 通过设置 GOOSdarwin&#x…...

hfish蜜罐docker部署

centos 安装 docker-CSDN博客Docker下载部署 Docker是我们推荐的部署方式之一&#xff0c;当前的版本拥有以下特性&#xff1a; 自动升级&#xff1a;每小时请求最新镜像进行升级&#xff0c;升级不会丢失数据。数据持久化&#xff1a;在宿主机/usr/share/hfish目录下建立dat…...

我的创作纪念日——redis的历史纪录

机缘 最开始只想存留点Redis的操作信息&#xff0c;后来写着写着也就写多了&#xff0c;虽然后面很长时间由于忙就没继续写&#xff0c;但是还是偶尔登录看一下&#xff0c;有好几篇文章的浏览量还是很多的呢。 收获 收获不多&#xff0c;粉丝也才三十多个&#xff0c;浏览量感…...

【Bootstrap5学习 day10】

Flex布局 弹性盒子是CSS3的一种新的布局模式&#xff0c;更适合响应式的设计 创建一个弹性盒子容器 使用d-flex类&#xff0c;创建flexbox容器并将直接子项转换为flex项 <div class"d-flex p-3 bg-info text-white"><div class"p-2 bg-secondary"…...

2024年学习计划

2024-2-29号完成 机器视觉基础知识学习&#xff0c;并可以处理视觉工作中的需求。 2024-3月份学习SCARA机械手应用开发SCARA机器人-埃斯顿自动化 - ESTUN 2024-4月份继续学习python 好了&#xff0c;今年可以完成这三个目标就满足了 好好学习&#xff0c;天天向上。每天进步…...

学习笔记:C++之 switch语句

Switch语句 作用&#xff1a;执行多条件分支语句 语法&#xff1a; switch&#xff08;表达式&#xff09;{ case 结果1&#xff1a;执行语句&#xff1b;break&#xff1b; case 结果2&#xff1a;执行语句&#xff1b;break&#xff1b; ... default&#xff1a;执行语句&a…...

C++ 具名要求-全库范围的概念

此页面中列出的具名要求&#xff0c;是 C 标准的规范性文本中使用的具名要求&#xff0c;用于定义标准库的期待。 某些具名要求在 C20 中正在以概念语言特性进行形式化。在那之前&#xff0c;确保以满足这些要求的模板实参实例化标准库模板是程序员的重担。若不这么做&#xf…...

分布式(4)

目录 16.分布式缓存可能会存在哪些问题&#xff1f; 17.分布式限流了解过吗&#xff1f; 18.分布式定时任务怎么实现&#xff1f; 19.什么是分布式系统的副本一致性&#xff1f;有哪些&#xff1f; 20.在分布式系统中有哪些常见的一致性算法&#xff1f; 21.谈谈你对一致性…...

XCTF-Misc1 USB键盘流量分析

m0_01 附件是一个USB流量文件 分析 1.键盘流量 USB协议数据部分在Leftover Capture Data域中&#xff0c;数据长度为八个字节&#xff0c;其中键盘击健信息集中在第三个字节中。 usb keyboard映射表&#xff1a;USB协议中HID设备描述符以及键盘按键值对应编码表 2.USB…...

毛概笔记。

一、 毛泽东思想是马中化的第一果&#xff0c;是关于搞革命&#xff0c;搞改造&#xff0c;搞建设的理论。 二、新民主主义革命 新民主主义革命的三大法宝&#xff1a;1.统一战线 2. 武装斗争 3.党的建设 政治纲领 经济纲领 文化纲领 乱世造英雄 三、社会主义改造理论&#xff…...

postman使用方法指南,最全面的教程

Postman使用教程 一、Postman介绍 ​ Postman是一个英语单词&#xff0c;名词&#xff0c;作名词时意为“邮递员&#xff1b;邮差”。 ​ Postman是一个接口测试工具,在做接口测试的时候,Postman相当于一个客户端,它可以模拟用户发起的各类HTTP请求,将请求数据发送至服务端,…...

工业物联网上篇——什么是IIOT?

工业物联网背后的理念是使用工业设施中“哑巴设备”多年来产生的数据。装配线上的智能机器不仅可以更快地捕获和分析数据&#xff0c;且在交流重要信息方面也更快&#xff0c;这有助于更快、更准确地做出业务决策。 信息技术&#xff08;IT&#xff09;和运营技术&#xff08;O…...

做网站挣钱的人/b站视频推广网站2023

标题java初级java中级java高级java面试大纲java学习路线java学习大纲 最近在整理面试资料&#xff0c;索性就整理了一个面试大纲&#xff0c;下面脑图基本是我目前所接触到的知识面&#xff0c;JAVA程序员看过来吧&#xff0c;一起学习一起进步&#xff0c;有好的建议评论区留…...

上海欣扬集团 网站建设/全国最新疫情最新消息

对我而言&#xff0c;投资其实就是把我自身所掌握的知识变现成财富的一种方法。所以&#xff0c;一个人所掌握的知识有多少&#xff0c;有多深&#xff0c;对投资的收益起至关重要的作用。那么、当前在你脑中的知识&#xff0c;是通过一个什么样的流程固化下来的呢&#xff1f;…...

设计网站printest/销售找客户的方法

在MySQL的安装中包含了很多文件&#xff0c;大多数的版本中都包含了这些程序&#xff0c;除了一些平台特定的文件外(例如服务启动脚本文件就不在windows中使用)。例外的RPM版本跟为专门化&#xff0c;可以查看Chapter 2, Installing and Upgrading MySQL获取更多信息&#xff0…...

旅游景区网站设计/怎样推广app别人才愿意下载

#输出1-100连续数字# for i in range(1,101):# print(i)#输出100-1且间隔的为2数字# for i in range(100,1,-2):# print(i)#使用continue输出数字1 2 3 4 5 6 8 9 10# for i in range(1,11): #无空格版# if i 7:# continue# print(i)# for i in ran…...

网站建设加盟代理/如何百度推广

对于大多数上班族和创业者而言&#xff0c;电脑是每天不可缺少的存在。但我想问&#xff0c;难道大家就不曾有疑问&#xff1a;键盘上最上方的 F1 到 F12 到底是干嘛用的&#xff1f;可能不少朋友们都能猜到&#xff0c;它的作用和意义是充当「快捷键」的存在&#xff0c;以实现…...

网站制作企业首页/短视频营销方式有哪些

这是python数据分析入门的的第2篇文章&#xff1a;第一篇文章&#xff1a;思里皮&#xff1a;Python软件安装及基础数据类型本文文章结构条件判断循环函数模块数据结构条件判断&#xff1a;单条件判断多条件判断级联的else if&#xff0c;elif是其缩写。循环&#xff1a;for 循…...