当前位置: 首页 > 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…...

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...

OpenLayers 可视化之热力图

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 热力图&#xff08;Heatmap&#xff09;又叫热点图&#xff0c;是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

练习(含atoi的模拟实现,自定义类型等练习)

一、结构体大小的计算及位段 &#xff08;结构体大小计算及位段 详解请看&#xff1a;自定义类型&#xff1a;结构体进阶-CSDN博客&#xff09; 1.在32位系统环境&#xff0c;编译选项为4字节对齐&#xff0c;那么sizeof(A)和sizeof(B)是多少&#xff1f; #pragma pack(4)st…...

在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:

在 HarmonyOS 应用开发中&#xff0c;手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力&#xff0c;既支持点击、长按、拖拽等基础单一手势的精细控制&#xff0c;也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档&#xff0c…...

Cesium1.95中高性能加载1500个点

一、基本方式&#xff1a; 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...

在rocky linux 9.5上在线安装 docker

前面是指南&#xff0c;后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...

Linux-07 ubuntu 的 chrome 启动不了

文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了&#xff0c;报错如下四、启动不了&#xff0c;解决如下 总结 问题原因 在应用中可以看到chrome&#xff0c;但是打不开(说明&#xff1a;原来的ubuntu系统出问题了&#xff0c;这个是备用的硬盘&a…...

【JavaSE】绘图与事件入门学习笔记

-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角&#xff0c;以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向&#xff0c;距离坐标原点x个像素;第二个是y坐标&#xff0c;表示当前位置为垂直方向&#xff0c;距离坐标原点y个像素。 坐标体系-像素 …...

Pinocchio 库详解及其在足式机器人上的应用

Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库&#xff0c;专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性&#xff0c;并提供了一个通用的框架&…...

Go 语言并发编程基础:无缓冲与有缓冲通道

在上一章节中&#xff0c;我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道&#xff0c;它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好&#xff0…...