Logback学习
logback
1、logback介绍
Logback是由log4j创始人设计的另一个开源日志组件,性能比log4j要好。
lockback优点:
- 内核重写、测试充分、初始化内存加载更小,这一切让logback性能和log4j相比有诸多倍的提升。
- logback非常自然地直接实现了slf4j,这个严格来说算不上优点,只是这样,再理解slf4j的前提下会很容易理解logback,也同时很容易用其他日志框架替换logback。
- logback有比较齐全的200多页的文档。
- logback当配置文件修改了,支持自动重新加载配置文件,扫描过程快且安全,它并不需要另外创建一个扫描线程。
- 支持自动去除旧的日志文件,可以控制已经产生日志文件的最大数量。
1.1 lockback模块
logback-core:其他两个模块的基础模块
logback-classic:它是log4j的改良版本,完整实现了SIf4j API
logback-access:访问模块与servlet容器继承提供通过Http来访问日志的功能
想要使用lockback日志框架,至少需要在项目中整合下面三个模块:
slf4j-api:日志接口、lockback-core、logback-classic
1.2 lockback组件
1) Logger:日志的记录器,把它关联到应用的对应的context上后,主要用于存放日志对象,也可以定义日志类型、级别。
2) Appender:用于指定日志输出的目的地,可以是控制台、文件、数据库等等。
3) Layout:负责把事件转换成字符串,格式化的日志信息的输出。在logback中Layout对象被封装在encoder中。
1.3 lockback配置
logback会依次读取以下类型配置文件:
1) logback.grovy
2) logback-test.xml
3) logback.xml
1.4 lockback.xml配置文件解析
<?xml version="1.0" encoding="UTF-8"?><configuration><!-- 配置集中管理属性,可以直接使用该属性的值,格式:${name} --><property name="pattern" value="[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} %c %M %L [%thread] %m%n"/><!-- 日志输出格式:%-5level : 级别从左显示5个字符宽度%d : 日期%c : 类的完整名称%M : 方法名%L : 行号%thread : 线程名称%m : 信息%n : 换行 --><!-- 格式化输出:%d表示日期, %thread表示线程名,%-5level:级别从左显示5个字符宽度 %msg:日志消息 %n是换行符 --><!-- 控制台日志输出的appender --><!-- 每个标签的编写都是使用类的set方法,如target标签对应setTarget方法 --><appender name="console" class="ch.qos.logback.core.ConsoleAppender"><!-- 控制输出流对象默认是System.out,可以改为System.err,区别在于字体颜色不同 --><target>System.err</target><!-- 日志消息格式配置 --><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><pattern>${pattern}</pattern></encoder></appender><!-- 文件输出的appender --><appender name="file" class="ch.qos.logback.core.FileAppender"><file>path/to/log/file.log</file><!-- 日志文件拆分规则 --><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- 文件名模式,按日期拆分,保留最近7天的日志文件 --><fileNamePattern>path/to/log/file-%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern><maxHistory>7</maxHistory></rollingPolicy><!-- 触发拆分的条件,按文件大小拆分,当日志文件大小达到10MB时触发拆分 --><triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"><maxFileSize>10MB</maxFileSize></triggeringPolicy><!-- 日志消息格式配置 --><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><pattern>${pattern}</pattern></encoder></appender><!-- root logger配置:只有日志的级别是大于或等于核心配置文件配置的日志级别,才会被记录,否则不记录。 --><root level="ALL"><!--TRACE(追踪): 提供比DEBUG更详细的信息,用于追踪代码执行流程。DEBUG(调试): 用于调试应用程序,提供详细的信息,通常不应该在生产环境中启用。INFO(信息): 提供一般性的信息,用于说明应用程序的运行状态,如启动、关闭等。WARN(警告): 表示潜在的问题,不会导致应用程序停止运行,但需要引起注意。ERROR(错误): 用于表示错误事件,可能导致应用程序无法正常执行。OFF(关闭): 用于关闭所有日志记录。ALL(所有): 记录所有的日志消息。--><!-- 引用控制台和文件输出的appender,想输出到哪里就加哪个 --><appender-ref ref="console"/><appender-ref ref="file"/></root></configuration>
2、lockback快速入门
需求:使用Logback日志框架,纪录系统的运行信息。
实现步骤:
- 导入Logback框架到项目中去。
slf4j-api:日志接口、lockback-core、logback-classic - 将Logback框架的核心配置文件logback.xml直接拷贝到src目录下(必须是Src下)
- 创建Logback框架提供的Logger对象,然后用Logger对象调用其提供的方法就可以记录系统的日志信息。
public static final Logger LOGGER = LoggerFactory.getLogger("类名");
相关文章:

Logback学习
logback 1、logback介绍 Logback是由log4j创始人设计的另一个开源日志组件,性能比log4j要好。 lockback优点: 内核重写、测试充分、初始化内存加载更小,这一切让logback性能和log4j相比有诸多倍的提升。logback非常自然地直接实现了slf4j…...

【Chrono Engine学习总结】2-可视化
由于Chrono的官方教程在一些细节方面解释的并不清楚,自己做了一些尝试,做学习总结。 0、基本概念 类型说明: Chrono的可视化包括两块:实时可视化,以及离线/后处理可视化。 其中,实时可视化,又…...

pytorch创建tensor
目录 1. 从numpy创建2. 从list创建3. 创建未初始化tensor4. 设置默认tensor创建类型5. rand/rand_like, randint6. randn生成正态分布随机数7. full8. arange/range9. linspace/logspace10. Ones/zeros/eye11. randperm 1. 从numpy创建 2. 从list创建 3. 创建未初始化tensor T…...

Cmake语法学习3:语法
1.双引号 1.1 命令参数 1)介绍 命令中多个参数之间使用空格进行分隔,而 cmake 会将双引号引起来的内容作为一个整体,当它当成一个参数,假如你的参数中有空格(空格是参数的一部分),那么就可以使…...
JavaScript 基础 - 第1天
介绍 掌握 JavaScript 的引入方式,初步认识 JavaScript 的作用 引入方式 JavaScript 程序不能独立运行,它需要被嵌入 HTML 中,然后浏览器才能执行 JavaScript 代码。通过 script 标签将 JavaScript 代码引入到 HTML 中,有两种方式…...

人口增长问题 T1063
#include<bits/stdc.h> using namespace std; int main(){int n;double x;cin>>x>>n;for(int i1;i<n;i){xx*1.001;}printf("%.4lf",x);return 0; }...
2024年Java算法面试题
2024年Java实战面试题(北京)_java 5 年 面试-CSDN博客 一、波菲那契递归 System.out.println("banc " banc(10)) public static int banc(int n){if( n0 ){return 0;}else if( n1 ){return 1;}else{return banc(n-1) banc(n-2);} } 二、冒…...

C#——三角形面积公式
已知三角形的三个边,求面积,可以使用海伦公式。 因此,可以执行得到三角形面积公式的计算方法代码如下: /** / <summary>* / 三角形面积公式* / </summary>* / <param name"a">边长a</param>*…...

tcpdump在手机上的使用
首先手机得root才可以,主要分析手机与手机的通信协议 我使用的是一加9pro, root方法参考一加全能盒子、一加全能工具箱官方网站——大侠阿木 (daxiaamu.com)https://optool.daxiaamu.com/index.php tcpdump,要安装在/data/local/tmp下要arm6…...
unity 导出H5
Unity 输出html5_mob649e8157aaee的技术博客_51CTO博客 Unity打包WebGL报Unable to parse Build/*.framework.js.gz This can happen if build compression was......._unable to load file build/out.framework.js.gz! che-CSDN博客...

认识 SYN Flood 攻击
文章目录 1.什么是 SYN Flood 攻击?2.半连接与全连接队列3.如何防范 SYN Flood 攻击?增大半连接队列开启 SYN Cookie减少 SYNACK 重传次数 参考文献 1.什么是 SYN Flood 攻击? SYN Flood 是互联网上最原始、最经典的 DDoS(Distri…...

Node需要了解的知识
Node能执行javascript的原因。 浏览器之所以能执行Javascript代码,因为内部含有v8引擎。Node.js基于v8引擎封装,因此可以执行javascript代码。Node.js环境没有DOM和BOM。DOM能访问HTML所有的节点对象,BOM是浏览器对象。但是node中提供了cons…...

网络服务综合实验项目
目录 实验要求 运行环境 基础配置 业务需求 实验步骤 一、基础配置 1.1、配置静态IP 1.1.1、 在192.168.159.130中配置 1.1.2、 在192.168.159.131中配置 编辑 1.2、修改主机名及hosts映射 1.2.1、在192.168.159.130中配置 1.2.2、 编辑配置hosts文件 1.2.3、重启…...
工厂模式与抽象工厂模式
如有错误或有补充,以及任何的改进意见,请在评论区留下您的高见 工厂模式 工厂模式是一种创建型设计模式。在工厂模式中,类的实例化过程通常是通过一个专门的工厂类来完成的,而不是直接在客户端代码中进行的。这样可以提供更好的…...

Springboot整合Websocket实现ws和wss连接
1. 引入pom依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId><version>2.7.10</version> </dependency>2. 新建websocket配置文件 import org.springf…...

CSC联合培养博士申请亲历|联系外导的详细过程
在CSC申报的各环节中,联系外导获得邀请函是关键步骤。这位联培博士同学的这篇文章,非常详细且真实地记录了申请过程、心理感受,并提出有益的建议,小编特推荐给大家参考。 2024年国家留学基金委公派留学项目即将开始,其…...

没有外网Nginx如何配置如何开启https
判断是否支持open-ssl 在服务器执行如下命令 openssl version没有则安装open-ssl,由于服务器没有外网,可以离线安装openssl-3.0.1.tar.gz,我是在有网的服务器直接下载的,然后再上传到这台无网的服务器上 wget https://www.open…...

【Docker篇】Linux安装Docker、docker安装mysql、redis、rabbitmq
1.Linux安装docker 官方帮助文档:Install Docker Engine on CentOS | Docker Docs 1.1安装命令 # 1. 卸载之前的dockersudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate…...

WPF应用程序(.Net Framework 4.8) 国际化
1、新建两个资源字典文件zh-CN.xaml和en-US.xaml,分别存储中文模板和英文模板 (1) zh-CN.xaml <ResourceDictionary xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml&q…...

Elasticsearch:Geoshape query
Geoshape 查询可以用于过滤使用 geo_shape 或 geo_point 类型索引的文档。 geo_shape 查询使用与 geo_shape 或 geo_point 映射相同的索引来查找具有与查询形状相关的形状的文档,并使用指定的空间关系:相交(intersect)、包含(con…...

K8S认证|CKS题库+答案| 11. AppArmor
目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...
postgresql|数据库|只读用户的创建和删除(备忘)
CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码
目录 一、👨🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨…...

宇树科技,改名了!
提到国内具身智能和机器人领域的代表企业,那宇树科技(Unitree)必须名列其榜。 最近,宇树科技的一项新变动消息在业界引发了不少关注和讨论,即: 宇树向其合作伙伴发布了一封公司名称变更函称,因…...
字符串哈希+KMP
P10468 兔子与兔子 #include<bits/stdc.h> using namespace std; typedef unsigned long long ull; const int N 1000010; ull a[N], pw[N]; int n; ull gethash(int l, int r){return a[r] - a[l - 1] * pw[r - l 1]; } signed main(){ios::sync_with_stdio(false), …...
P10909 [蓝桥杯 2024 国 B] 立定跳远
# P10909 [蓝桥杯 2024 国 B] 立定跳远 ## 题目描述 在运动会上,小明从数轴的原点开始向正方向立定跳远。项目设置了 $n$ 个检查点 $a_1, a_2, \cdots , a_n$ 且 $a_i \ge a_{i−1} > 0$。小明必须先后跳跃到每个检查点上且只能跳跃到检查点上。同时࿰…...

[C++错误经验]case语句跳过变量初始化
标题:[C错误经验]case语句跳过变量初始化 水墨不写bug 文章目录 一、错误信息复现二、错误分析三、解决方法 一、错误信息复现 write.cc:80:14: error: jump to case label80 | case 2:| ^ write.cc:76:20: note: crosses initialization…...
Q1起重机指挥理论备考要点分析
Q1起重机指挥理论备考要点分析 一、考试重点内容概述 Q1起重机指挥理论考试主要包含三大核心模块:安全技术知识(占40%)、指挥信号规范(占30%)和法规标准(占30%)。考试采用百分制,8…...

循环神经网络(RNN):从理论到翻译
循环神经网络(RNN)是一种专为处理序列数据设计的神经网络,如时间序列、自然语言或语音。与传统的全连接神经网络不同,RNN具有"记忆"功能,通过循环传递信息,使其特别适合需要考虑上下文或顺序的任…...

Redis:常用数据结构 单线程模型
🌈 个人主页:Zfox_ 🔥 系列专栏:Redis 🔥 常用数据结构 🐳 Redis 当中常用的数据结构如下所示: Redis 在底层实现上述数据结构的过程中,会在源码的角度上对于上述的内容进行特定的…...