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

logback 初探学习

logback 三大模块

记录器(Logger)、追加器(Appender)和布局(Layout)

配置文件外层最基本的标签如图示

xml中定义的就是这个三个东西下面进入学习

包引入参考springboot 官方文档 Logging :: Spring Boot
我用的是springboot项目进行学习的,所以仅仅导入spring-boot-starter-web一个依赖就行,它默认使用的就是slf4j作为日志接口门面,使用logback作为默认接口实现,如图示

1.日志等级划分

1.基础输出

具体详情请参考官方文档:Chapter 2: Architecture

log等级划分为 trace < debug < info < warn < error
假设log定义为info时候,打印日志如果小于info,那么日志不会进行输出,样例如下:

    //由于配置定义的是 info 集别  根据 集别优先级 所以不会打印 trace和debug//trace < debug <info <warn < errorch.qos.logback.classic.Logger logger = (ch.qos.logback.classic.Logger)LoggerFactory.getLogger("simple.consoleAppender");@GetMapping("/simpleConsoleAppender")public String index() {logger.trace("simple.consoleAppender [ trace ] hello world ");logger.debug("simple.consoleAppender [ debug ] hello world ");logger.info("simple.consoleAppender [ info ] hello world ");logger.warn("simple.consoleAppender [ warn ] hello world ");logger.error("simple.consoleAppender [ error ] hello world ");//return "index";}

2.父子关系演示

关于日志还有父子关系的结构,可以认为就是java类父子关系,假设定义日志名称为com.group.order.service,那么logback 就会创建关系为:root->com->group->order->service
的5种日志name。如果你用的是com.group 输出的日志,那么就会向上依次查找,如果都没有定义,那么使用默认root级别level,默认为debug级别,下面是演示

//由于配置定义的是 info 集别  根据 集别优先级 所以不会打印 trace和debug//trace < debug <info <warn < errorch.qos.logback.classic.Logger logger = (ch.qos.logback.classic.Logger)LoggerFactory.getLogger("simple.consoleAppender");ch.qos.logback.classic.Logger loggerSimple = (ch.qos.logback.classic.Logger)LoggerFactory.getLogger("simple");ch.qos.logback.classic.Logger rootLogger = (ch.qos.logback.classic.Logger)LoggerFactory.getLogger(org.slf4j.Logger.ROOT_LOGGER_NAME);@GetMapping("/simpleConsoleAppender")public String index() {
//定义的info级别logger.trace("simple.consoleAppender [ trace ] hello world ");logger.debug("simple.consoleAppender [ debug ] hello world ");logger.info("simple.consoleAppender [ info ] hello world ");logger.warn("simple.consoleAppender [ warn ] hello world ");logger.error("simple.consoleAppender [ error ] hello world ");//
//未定义的simple日志 会自动向上查询level级别loggerSimple.trace("loggerSimple.consoleAppender [ trace ] hello world ");loggerSimple.debug("loggerSimple.consoleAppender [ debug ] hello world ");loggerSimple.info("loggerSimple.consoleAppender [ info ] hello world ");loggerSimple.warn("loggerSimple.consoleAppender [ warn ] hello world ");loggerSimple.error("loggerSimple.consoleAppender [ error ] hello world ");//
//打印root 的默认集别System.out.println("root level = " + rootLogger.getEffectiveLevel());//return "index";}

以上demo的xml配置如下  spring-logback.xml

<!--<configuration debug="true">-->
<configuration ><logger name="simple.consoleAppender" level="INFO" /><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><!-- encoders are assigned the typech.qos.logback.classic.encoder.PatternLayoutEncoder by default --><encoder><pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern></encoder></appender><root level="debug"><appender-ref ref="STDOUT" /></root></configuration>

 2.log xml 定义

1.最简单的输出定义

参考上面xml定义。记录器(Logger)、追加器(Appender)
就是上面的logger标签和appender标签,
logger主要就是两个属性,日志名称name和日志级别level

2.Appender分析

顶级接口Appender两个实现类

这里主要分析,UnsynchronizedAppenderBase,因为后续主要围绕这几个实现类来做日志配置

主要使用的就是下面这些

ConsoleAppender 控制台打印日志输出:Chapter 4: Appenders
WARNING Please note the console is comparatively slow, even very slow. You should avoid logging to the console in production, especially in high volume systems.
警告:请注意,控制台相对较慢,甚至非常慢。在生产环境中,尤其是在高流量系统中,应避免向控制台输出日志。

FileAppender 文件日志输出:第 4 章:附加程序

RollingFileAppender 可备份滚动日志文件 第 4 章:附加程序

个人学习视频记录 结合官方文档自学logback_哔哩哔哩_bilibili

相关文章:

logback 初探学习

logback 三大模块 记录器&#xff08;Logger&#xff09;、追加器&#xff08;Appender&#xff09;和布局&#xff08;Layout&#xff09; 配置文件外层最基本的标签如图示 xml中定义的就是这个三个东西下面进入学习 包引入参考springboot 官方文档 Logging :: Spring Boo…...

在Elasticsearch中,是怎么根据一个词找到对应的倒排索引的?

大家好&#xff0c;我是锋哥。今天分享关于【在Elasticsearch中&#xff0c;是怎么根据一个词找到对应的倒排索引的&#xff1f;】面试题。希望对大家有帮助&#xff1b; 在Elasticsearch中&#xff0c;是怎么根据一个词找到对应的倒排索引的&#xff1f; 在 Elasticsearch 中…...

1992-2021年 各省市县经过矫正的夜间灯光数据(GNLD、VIIRS)区域汇总:省份、城市、区县面板数据

1992-2021年 各省市县经过矫正的夜间灯光数据&#xff08;GNLD、VIIRS&#xff09;区域汇总&#xff1a;省份、城市、区县面板数据 .r.rar https://download.csdn.net/download/2401_84585615/90001905 从1992年至2021年&#xff0c;中国各省份、城市及区县的夜间灯光数据经过…...

linux实战-黑链——玄机靶场

黑链的特征&#xff1a; 隐藏链接&#xff1a;黑链通常隐藏在网站页面中&#xff0c;使用CSS、JavaScript或其他手段使其对普通用户不可见&#xff0c;但仍然能被搜索引擎爬虫检测到。恶意内容&#xff1a;这些链接指向的内容可能包含恶意软件、钓鱼页面或其他不良内容&#x…...

鸿蒙NEXT开发案例:字数统计

【引言】 本文将通过一个具体的案例——“字数统计”组件&#xff0c;来探讨如何在鸿蒙NEXT框架下实现这一功能。此组件不仅能够统计用户输入文本中的汉字、中文标点、数字、以及英文字符的数量&#xff0c;还具有良好的用户界面设计&#xff0c;使用户能够直观地了解输入文本…...

uniapp vue2项目迁移vue3项目

uniapp vue2项目迁移vue3项目&#xff0c;必须适配的部分 一、main.js 创建应用实例 // 之前 - Vue 2 import Vue from vue import App from ./App Vue.config.productionTip false // vue3 不再需要 App.mpType app // vue3 不再需要 const app new Vue({ ...App }) …...

16.C++STL 3(string类的模拟,深浅拷贝问题)

⭐本篇重点&#xff1a;string类的模拟&#xff0c;自己实现一个简单的string类 ⭐本篇代码&#xff1a;c学习/05.string类的学习 橘子真甜/c-learning-of-yzc - 码云 - 开源中国 (gitee.com) 目录 一. 经典string类的模拟 1.1 深浅拷贝问题 1.2 使用深拷贝完成经典string类的…...

神经网络10-Temporal Fusion Transformer (TFT)

Temporal Fusion Transformer (TFT) 是一种专为时序数据建模而设计的深度学习模型&#xff0c;它结合了Transformer架构和其他技术&#xff0c;旨在有效地处理和预测时序数据中的复杂模式。TFT 于 2020 年由 Google Research 提出&#xff0c;旨在解决传统模型在时序预测中的一…...

“iOS profile文件与私钥证书文件不匹配”总结打ipa包出现的问题

目录 文件和证书未加载或特殊字符问题 证书过期或Profile文件错误 确认开发者证书和私钥是否匹配 创建证书选择错误问题 申请苹果 AppId时勾选服务不全问题 ​总结 在上线ios平台的时候&#xff0c;在Hbuilder中打包遇见了问题&#xff0c;生成ipa文件时候&#xff0c;一…...

《图像梯度与常见算子全解析:原理、用法及效果展示》

简介:本文深入探讨图像梯度相关知识&#xff0c;详细介绍图像梯度是像素灰度值在不同方向的变化速度&#xff0c;并以 “pig.JPG” 图像为例&#xff0c;通过代码展示如何选取图像部分区域并分析其像素值以论证图像梯度与边缘信息的关联。接着全面阐述了 Sobel 算子&#xff0c…...

【c++篇】:探索c++中的std::string类--掌握字符串处理的精髓

✨感谢您阅读本篇文章&#xff0c;文章内容是个人学习笔记的整理&#xff0c;如果哪里有误的话还请您指正噢✨ ✨ 个人主页&#xff1a;余辉zmh–CSDN博客 ✨文章所属专栏&#xff1a;c篇–CSDN博客 文章目录 前言一.std::string对象的创建二.std::string对象的访问三.std::str…...

LlamaIndex ollama 搭建本地RAG应用,建立本地知识库

目录 简介安装前的准备下载ollama创建llamaindex conda环境&#xff0c;为后面编码作准备 环境变量迁移ollama到其他盘运行ollama方式一方式二禁止ollama开机自启动运行第一个模型 Chatbox聊天下载Chatbox配置ollama地址和模型验证 建立自身特定知识数据搭配大语言模型创建项目…...

draggable的el-dialog实现对话框标题可以选择

请看图 这个对话框使用了el-dialog并且draggable属性设置成了true&#xff0c;所以标题栏这里就可以拖动&#xff0c;现在用户想选中标题栏的文本进而复制。我看到这个需求头都大了。 我能想到的方案有三个&#xff1a;1. 取消draggable为true 2. 标题文案后面加一个复制按钮 …...

2024年Android面试总结

2024年Android面试总结 1.动画类型有哪些&#xff1f;插值器原理&#xff1f; 2.StringBuffer和StringBuilder区别&#xff1f; 3.jvm内存模型&#xff1f; 4.线程池7大核心参数及原理&#xff1f; 5.Android多进程通信方式有哪些&#xff1f;各自的优缺点&#xff1f; 6…...

树莓派3:64位系统串口(UART)使用问题的解决方法

前言 当我们要使用串口进行zigbee的短距离通信时,发现无法使用串口. 原因 树莓派3bCPU内部有两个串口,一个硬件串口(就是我们平时使用的UART),还有一个迷你串口(mini-uart),在老版本的树莓派中把硬件串口分配在GPIO上,可以单独使用.但是在新的树莓派中官方把硬件串口给了蓝牙…...

SemiDrive E3 硬件设计系列---唤醒电路设计

一、前言 E3 系列芯片是芯驰半导体高功能安全的车规级 MCU&#xff0c;对于 MCU 的硬件设计部分&#xff0c;本系列将会分模块进行讲解&#xff0c;旨在介绍 E3 系列芯片在硬件设计方面的注意事项与经验&#xff0c;本文主要讲解 E3 硬件设计中唤醒电路部分的设计。 二、RTC 模…...

淘宝接口高并发采集核心要点解读,开启电商数据智能应用新纪元

一、引言 在电商蓬勃发展的今天&#xff0c;淘宝作为全球知名的电商巨头&#xff0c;其平台上的数据犹如一座蕴藏无限价值的宝藏。准确且高效地采集淘宝接口数据&#xff0c;并通过高并发技术实现大规模数据获取&#xff0c;对于电商企业的精准营销、市场趋势分析、竞品监测以及…...

C#里怎么样快速使用LINQ实现查询?

C#里怎么样快速使用LINQ实现查询? 在C#里使用LINQ,是一个方便的功能, 不过,要学会使用这部分的功能,需要比较多的学习时间,否则,使用起就比较难。 因为它的表现方式,与编程语言通用的功能,还是差别比较大。 当数据量比较小,没有特定的顺序时,使用LINQ访问会比较好…...

2024新版微软edge浏览器输入百度网址时自动补全tn=68018901……小尾巴的解决

以前一直是Windows11 21h2版本&#xff0c;浏览器内输入baidu不会自动补全tnxx的百度推广小尾巴。然后前几天在BIOS内开启了tpm2.0&#xff0c;升级Windows11到了24h2版本。 发现在edge浏览器内只要输入b&#xff0c;就会自动补全为baidu.com?tnXXX的这么一个百度推广形式。开…...

uni-app打包H5自定义微信分享

1、配置分享信息 修改uni-app的index.html,添加Open Graph(OG)标签来配置分享信息。 <!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8" /><meta name="description" content="标题"/>…...

Translumo终极指南:3分钟掌握Windows实时屏幕翻译神器

Translumo终极指南&#xff1a;3分钟掌握Windows实时屏幕翻译神器 【免费下载链接】Translumo Advanced real-time screen translator for games, hardcoded subtitles in videos, static text and etc. 项目地址: https://gitcode.com/gh_mirrors/tr/Translumo 你是否在…...

HuMAL:利用人类注意力对齐提升小样本NLP任务性能的实践指南

1. 项目概述与核心思路在自然语言处理领域&#xff0c;Transformer架构及其核心的注意力机制已经彻底改变了游戏规则。作为一名长期在NLP一线摸爬滚打的从业者&#xff0c;我见过太多项目因为数据量不足而折戟沉沙。无论是初创公司的新业务&#xff0c;还是特定垂直领域的文本分…...

免费视频字幕提取终极指南:3分钟快速提取多语言硬字幕

免费视频字幕提取终极指南&#xff1a;3分钟快速提取多语言硬字幕 【免费下载链接】video-subtitle-extractor 视频硬字幕提取&#xff0c;生成srt文件。无需申请第三方API&#xff0c;本地实现文本识别。基于深度学习的视频字幕提取框架&#xff0c;包含字幕区域检测、字幕内容…...

高斯混合期望传播算法:突破高阶MIMO检测性能瓶颈

1. 项目概述与核心挑战在无线通信系统的演进中&#xff0c;多输入多输出&#xff08;MIMO&#xff09;技术早已不是新鲜概念&#xff0c;它通过部署多根天线&#xff0c;在相同的频带内同时传输多个独立的数据流&#xff0c;从而成倍地提升了频谱效率和系统容量。然而&#xff…...

Wand-Enhancer终极指南:3分钟解锁WeMod完整专业功能

Wand-Enhancer终极指南&#xff1a;3分钟解锁WeMod完整专业功能 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/gh_mirrors/we/Wand-Enhancer Wand-Enhancer是一款革命性的开源工具&a…...

RePKG架构深度解析:解密Wallpaper Engine资源处理的核心技术

RePKG架构深度解析&#xff1a;解密Wallpaper Engine资源处理的核心技术 【免费下载链接】repkg Wallpaper engine PKG extractor/TEX to image converter 项目地址: https://gitcode.com/gh_mirrors/re/repkg 在数字内容创作领域&#xff0c;资源打包与纹理处理是图形应…...

终极指南:使用Xenos实现Windows进程DLL注入的完整教程

终极指南&#xff1a;使用Xenos实现Windows进程DLL注入的完整教程 【免费下载链接】Xenos Windows dll injector 项目地址: https://gitcode.com/gh_mirrors/xe/Xenos 在Windows系统开发和安全研究中&#xff0c;DLL注入技术是实现进程监控、调试和功能扩展的核心手段。…...

机器学习预测因果边界:从数据稀缺子群体到精准决策

1. 项目概述与核心挑战在医疗、经济、政策评估等关键决策领域&#xff0c;我们常常需要回答一个核心问题&#xff1a;“如果我采取了某项干预措施&#xff0c;结果会有什么不同&#xff1f;”这本质上是一个因果推断问题&#xff0c;它超越了简单的相关性分析&#xff0c;旨在揭…...

NVIDIA Profile Inspector终极指南:解锁显卡隐藏功能,5步优化游戏性能

NVIDIA Profile Inspector终极指南&#xff1a;解锁显卡隐藏功能&#xff0c;5步优化游戏性能 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector 你是否经常觉得游戏画面不够流畅&#xff1f;或者发现显卡…...

量子计算模拟Hubbard模型:算法实现与噪声分析

1. Hubbard模型与量子计算模拟概述在凝聚态物理研究中&#xff0c;Hubbard模型堪称是研究强关联电子系统的"果蝇模型"。这个看似简单的理论框架却能展现出从金属-绝缘体相变到高温超导等丰富物理现象。模型的核心哈密顿量包含两项关键竞争&#xff1a;H -t∑⟨i,j⟩…...