IDEA下Logback.xml自动提示功能配置
首先打开logback的配置文件,在configuration标签中加入xsd的配置
<configuration xmlns="http://ch.qos.logback/xml/ns/logback"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://ch.qos.logback/xml/ns/logbackhttps://raw.githubusercontent.com/enricopulatzo/logback-XSD/master/src/main/xsd/logback.xsd">
</configuration>
然后将鼠标光标放到https://raw.githubusercontent.com/enricopulatzo/logback-XSD/master/src/main/xsd/logback.xsd 的红色区域上,按alt+enter, 点击fetch external resource,会自动下载xsd文件。

如果无法下载,则在resource下创建logback.xsd文件
<?xml version="1.0" encoding="UTF-8"?>
<!--logback.xml schema,https://github.com/enricopulatzo/logback-XSDhttps://github.com/nkatsar/logback-XSD
-->
<xsd:schema targetNamespace="http://ch.qos.logback/xml/ns/logback"xmlns="http://ch.qos.logback/xml/ns/logback"xmlns:xsd="http://www.w3.org/2001/XMLSchema"elementFormDefault="qualified"attributeFormDefault="unqualified"version="1.1"><xsd:element name="configuration" type="Configuration"/><xsd:element name="included" type="Configuration"/><xsd:complexType name="Configuration"><xsd:choice maxOccurs="unbounded"><xsd:element name="shutdownHook" minOccurs="0" maxOccurs="1" type="ShutdownHook"/><xsd:element name="statusListener" minOccurs="0" maxOccurs="unbounded" type="StatusListener"/><xsd:element name="contextListener" minOccurs="0" maxOccurs="unbounded" type="ContextListener"/><xsd:element name="jmxConfigurator" minOccurs="0" maxOccurs="1" type="JmxConfigurator"/><xsd:element name="conversionRule" minOccurs="0" maxOccurs="unbounded" type="ConversionRule"/><xsd:element name="include" minOccurs="0" maxOccurs="unbounded" type="Include"/><xsd:element name="contextName" minOccurs="0" maxOccurs="1" type="xsd:string"/><xsd:element name="define" minOccurs="0" maxOccurs="unbounded" type="Define"/><xsd:element name="timestamp" minOccurs="0" maxOccurs="1" type="Timestamp"/><xsd:element name="if" minOccurs="0" maxOccurs="unbounded" type="If"/><xsd:element name="property" minOccurs="0" maxOccurs="unbounded" type="Property"/><xsd:element name="appender" minOccurs="0" maxOccurs="unbounded" type="Appender"/><xsd:element name="logger" minOccurs="0" maxOccurs="unbounded" type="Logger"/><xsd:element name="root" minOccurs="0" maxOccurs="1" type="Root"/><xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/></xsd:choice><xsd:attribute name="debug" type="xsd:boolean" use="optional"/><xsd:attribute name="scan" type="xsd:boolean" use="optional" default="false"/><xsd:attribute name="scanPeriod" type="xsd:string" use="optional" default="1 minute"/><xsd:attribute name="packagingData" type="xsd:boolean" use="optional" default="false"/><xsd:anyAttribute/></xsd:complexType><xsd:complexType name="ShutdownHook"><xsd:attribute name="class" type="xsd:string" use="optional"default="ch.qos.logback.core.hook.DelayingShutdownHook"/><xsd:anyAttribute/></xsd:complexType><xsd:complexType name="ConversionRule"><xsd:attribute name="conversionWord" type="xsd:string"/><xsd:attribute name="converterClass" type="xsd:string"/></xsd:complexType><xsd:complexType name="StatusListener"><xsd:attribute name="class" type="xsd:string" use="optional"/><xsd:anyAttribute/></xsd:complexType><xsd:complexType name="ContextListener"><xsd:choice maxOccurs="unbounded"><xsd:element name="resetJUL" type="xsd:boolean"/><xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/></xsd:choice><xsd:attribute name="class" type="xsd:string"/><xsd:anyAttribute/></xsd:complexType><xsd:complexType name="Include"><xsd:attribute name="file" use="optional" type="xsd:string"/><xsd:attribute name="resource" use="optional" type="xsd:string"/><xsd:attribute name="url" use="optional" type="xsd:string"/><xsd:attribute name="optional" use="optional" type="xsd:boolean"/></xsd:complexType><xsd:complexType name="Define"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:anyAttribute/></xsd:complexType><xsd:complexType name="Timestamp"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute name="key" type="xsd:string" use="optional"/><xsd:attribute name="datePattern" type="xsd:string" use="optional"/><xsd:attribute name="timeReference" type="xsd:string" use="optional"/><xsd:anyAttribute/></xsd:complexType><xsd:complexType name="RollingPolicy"><xsd:choice maxOccurs="unbounded"><xsd:element name="fileNamePattern" minOccurs="1" maxOccurs="1" type="xsd:string"/><xsd:element name="maxHistory" minOccurs="0" maxOccurs="1" type="xsd:int"/><xsd:element name="minIndex" minOccurs="0" maxOccurs="1" type="xsd:int"/><xsd:element name="maxIndex" minOccurs="0" maxOccurs="1" type="xsd:int"/><xsd:element name="timeBasedFileNamingAndTriggeringPolicy" minOccurs="0" maxOccurs="1" type="TriggeringPolicy"/><xsd:element name="cleanHistoryOnStart" minOccurs="0" maxOccurs="1" type="xsd:boolean"/><xsd:element name="maxFileSize" minOccurs="0" maxOccurs="1" type="FileSize"/><xsd:element name="totalSizeCap" minOccurs="0" maxOccurs="1" type="FileSize"/></xsd:choice><xsd:attribute name="class" type="xsd:string" use="required"/></xsd:complexType><xsd:simpleType name="FileSize"><xsd:restriction base="xsd:string"><xsd:pattern value="[1-9][0-9]*(KB|MB|GB)?"/></xsd:restriction></xsd:simpleType><xsd:complexType name="TriggeringPolicy"><xsd:sequence><xsd:element name="maxFileSize" minOccurs="0" maxOccurs="1" type="FileSize"/></xsd:sequence><xsd:attribute name="class" type="xsd:string" use="required"/></xsd:complexType><xsd:complexType name="If"><xsd:choice maxOccurs="unbounded"><xsd:element type="Configuration" name="then"/><xsd:element type="Configuration" name="else"/><xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/></xsd:choice><xsd:attribute name="condition" type="xsd:string"/><xsd:anyAttribute/></xsd:complexType><xsd:complexType name="Property"><xsd:sequence><xsd:any minOccurs="0" maxOccurs="unbounded"/></xsd:sequence><xsd:attribute name="scope" type="xsd:string" use="optional"/><xsd:attribute name="name" type="xsd:string" use="optional"/><xsd:attribute name="value" type="xsd:string" use="optional"/><xsd:attribute name="file" type="xsd:string" use="optional"/><xsd:attribute name="resource" type="xsd:string" use="optional"/><xsd:anyAttribute/></xsd:complexType><xsd:complexType name="Appender"><xsd:choice maxOccurs="unbounded"><xsd:element name="target" minOccurs="0" maxOccurs="1" type="Target"/><xsd:element name="file" minOccurs="0" maxOccurs="1" type="xsd:string"/><xsd:element name="withJansi" minOccurs="0" maxOccurs="1" type="xsd:boolean"/><xsd:element name="encoder" minOccurs="0" maxOccurs="1" type="Encoder"/><xsd:element name="filter" minOccurs="0" maxOccurs="1" type="Filter"/><xsd:element name="append" minOccurs="0" maxOccurs="1" type="xsd:boolean"/><xsd:element name="prudent" minOccurs="0" maxOccurs="1" type="xsd:boolean"/><xsd:element name="layout" minOccurs="0" maxOccurs="1" type="Layout"/><xsd:element name="rollingPolicy" minOccurs="0" maxOccurs="1" type="RollingPolicy"/><xsd:element name="connectionSource" minOccurs="0" maxOccurs="1" type="ConnectionSource"/><xsd:element name="triggeringPolicy" minOccurs="0" maxOccurs="1" type="TriggeringPolicy"/><xsd:element name="appender-ref" minOccurs="0" maxOccurs="1" type="AppenderRef"/><xsd:any namespace="##other" processContents="skip" minOccurs="0" maxOccurs="unbounded"/></xsd:choice><xsd:attribute name="name" type="xsd:string" use="required"/><xsd:attribute name="class" type="xsd:string" use="required"/><xsd:anyAttribute/></xsd:complexType><xsd:simpleType name="Target"><xsd:restriction base="xsd:string"><xsd:enumeration value="System.out"/><xsd:enumeration value="System.err"/></xsd:restriction></xsd:simpleType><xsd:complexType name="Filter"><xsd:choice maxOccurs="unbounded"><xsd:element name="level" minOccurs="0" maxOccurs="unbounded" type="LoggerLevel"/><xsd:element name="onMatch" minOccurs="0" maxOccurs="unbounded" type="MatchValue"/><xsd:element name="onMismatch" minOccurs="0" maxOccurs="unbounded" type="MatchValue"/><xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/></xsd:choice><xsd:attribute name="class" type="xsd:string" use="optional"/><xsd:anyAttribute/></xsd:complexType><xsd:simpleType name="MatchValue"><xsd:restriction base="xsd:string"><xsd:enumeration value="ACCEPT"/><xsd:enumeration value="DENY"/><xsd:enumeration value="NEUTRAL"/></xsd:restriction></xsd:simpleType><xsd:complexType name="Layout"><xsd:choice maxOccurs="unbounded"><xsd:element name="pattern" minOccurs="0" maxOccurs="1" type="xsd:string"/><xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/></xsd:choice><xsd:attribute name="class" type="xsd:string" use="optional"/><xsd:anyAttribute/></xsd:complexType><xsd:complexType name="Logger"><xsd:choice maxOccurs="unbounded"><xsd:element name="appender-ref" minOccurs="0" maxOccurs="unbounded" type="AppenderRef"/><xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/></xsd:choice><xsd:attribute name="name" type="xsd:string" use="required"/><xsd:attribute name="level" type="LoggerLevel" use="optional"/><xsd:attribute name="additivity" type="xsd:boolean" use="optional" default="true"/><xsd:anyAttribute/></xsd:complexType><xsd:complexType name="Encoder"><xsd:choice maxOccurs="unbounded"><xsd:element name="charset" type="xsd:string" minOccurs="0" maxOccurs="1"/><xsd:element name="immediateFlush" type="xsd:boolean" minOccurs="0" maxOccurs="1"/><xsd:element name="layout" minOccurs="0" maxOccurs="1" type="Layout"/><xsd:element name="outputPatternAsHeader" type="xsd:boolean" minOccurs="0" maxOccurs="1"/><xsd:element name="pattern" type="xsd:string" minOccurs="0" maxOccurs="1"/></xsd:choice><xsd:attribute name="class" type="xsd:string" use="optional"default="ch.qos.logback.classic.encoder.PatternLayoutEncoder"/></xsd:complexType><xsd:complexType name="Root"><xsd:sequence><xsd:element name="appender-ref" minOccurs="0" maxOccurs="unbounded" type="AppenderRef"/></xsd:sequence><xsd:attribute name="level" use="required" type="LoggerLevel"/><xsd:anyAttribute/></xsd:complexType><xsd:complexType name="AppenderRef"><xsd:attribute name="ref" type="xsd:string"/></xsd:complexType><xsd:simpleType name="LoggerLevel"><xsd:union><xsd:simpleType><xsd:restriction base="xsd:string"><xsd:enumeration value="OFF"/><xsd:enumeration value="off"/><xsd:enumeration value="ALL"/><xsd:enumeration value="all"/><xsd:enumeration value="INHERITED"/><xsd:enumeration value="inherited"/><xsd:enumeration value="NULL"/><xsd:enumeration value="null"/><xsd:enumeration value="ERROR"/><xsd:enumeration value="error"/><xsd:enumeration value="WARN"/><xsd:enumeration value="warn"/><xsd:enumeration value="INFO"/><xsd:enumeration value="info"/><xsd:enumeration value="DEBUG"/><xsd:enumeration value="debug"/><xsd:enumeration value="TRACE"/><xsd:enumeration value="trace"/></xsd:restriction></xsd:simpleType><xsd:simpleType><xsd:restriction base="xsd:string"><xsd:pattern value="($\{.+:-)?[Oo][Ff]{2}\}?"/><xsd:pattern value="($\{.+:-)?[Aa][Ll]{2}\}?"/><xsd:pattern value="($\{.+:-)?[Ii][Nn][Hh][Ee][Rr][Ii][Tt][Ee][Dd]\}?"/><xsd:pattern value="($\{.+:-)?[Nn][Uu][Ll]{2}\}?"/><xsd:pattern value="($\{.+:-)?[Ee][Rr]{2}[Oo][Rr]\}?"/><xsd:pattern value="($\{.+:-)?[Ww][Aa][Rr][Nn]\}?"/><xsd:pattern value="($\{.+:-)?[Ii][Nn][Ff][Oo]\}?"/><xsd:pattern value="($\{.+:-)?[Dd][Ee][Bb][Uu][Gg]\}?"/><xsd:pattern value="($\{.+:-)?[Tt][Rr][Aa][Cc][Ee]\}?"/><xsd:pattern value="\$\{.+\}"/></xsd:restriction></xsd:simpleType></xsd:union></xsd:simpleType><xsd:complexType name="JmxConfigurator"/><xsd:complexType name="ConnectionSource"><xsd:sequence><xsd:element name="driverClass" type="xsd:string"/><xsd:element name="url" type="xsd:string"/><xsd:element name="user" type="xsd:string"/><xsd:element name="password" type="xsd:string"/></xsd:sequence><xsd:attribute name="class" type="xsd:string" use="required"/></xsd:complexType></xsd:schema>
相关文章:
IDEA下Logback.xml自动提示功能配置
首先打开logback的配置文件,在configuration标签中加入xsd的配置 <configuration xmlns"http://ch.qos.logback/xml/ns/logback"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://ch.qos.logback/xml…...
CUDA编程模型系列八(原子操作 / 规约 / 向量元素求和)
本系列视频目的是帮助开发者们一步步地学会利用CUDA编程模型加速GPU应用, 我们的口号是: 让GPU飞起来 本期我介绍了cuda 当中规约算法的一种情况, 也是小何尚职业生涯中的第一道面试题, 计算数组中所有元素的和. CUDA编程模型系列八(原子操作 / 规约 / 向量元素求和) #include…...
go语言系列基础教程总结(4)
1、goroutine和channel 每执行一次go func()就创建一个 goroutine,包含要执行的函数和上下文信息。 goroutine 是Go程序并发的执行体,channel是它们之间的沟通连接通道。 var ch1 chan int. //声明一个整型的通道 2、channel 常用操作 //定义一个…...
网络基础一:网络协议初识与网络传输基本流程
目录 网络协议认识“协议”网络协议初识协议分层OSI七层模型(理论模型)TCP/IP五层(或四层)模型(工程实现模型) 网络中的地址管理MAC地址IP地址 网络传输基本流程路由的本质 数据包封装和分用网络协议需要解决的问题 网络协议 计算…...
Mysql找出执行慢的SQL【慢查询日志使用与分析】
分析慢SQL的步骤 慢查询的开启并捕获:开启慢查询日志,设置阈值,比如超过5秒钟的就是慢SQL,至少跑1天,看看生产的慢SQL情况,并将它抓取出来explain 慢SQL分析show Profile。(比explain还要详细…...
设计模式3:单例模式:JMM与volatile和synchronized的关系
本文目录 JMM简介Java 内部内存模型(The Internal Java Memory Model)硬件内存架构(Hardware Memory Architecture)弥合 Java 内存模型和硬件内存架构之间的差距(Bridging The Gap Between The Java Memory Model And The Hardware Memory Architecture)1.共享对象的可见性2.竞…...
一个简单的OPC UA/ModbusTCP 网关(Python)
使用我前面几篇博文的内容,能够使用Python编写一个最简单的OPC UA /ModbusTCP网关。 从这个程序可以看出: 应用OPC UA 并不难,现在我们就可以应用到工程应用中,甚至DIY项目也可以。不必采用复杂的工具软件。使用Python 来构建工…...
线性代数行列式的几何含义
行列式可以看做是一系列列向量的排列,并且每个列向量的分量可以理解为其对应标准正交基下的坐标。 行列式有非常直观的几何意义,例如: 二维行列式按列向量排列依次是 a \mathbf{a} a和 b \mathbf{b} b,可以表示 a \mathbf{a} a和…...
python用flask将视频显示在网页上
注意我们的return返回值必须是以下之一,否则会报错 from flask import Flask, render_template, Response import cv2app Flask(__name__)app.route(/) def index():return render_template(index.html)def gen(camera):while True:success, image camera.read(…...
【数据挖掘】时间序列教程【一】
第一章 说明 对于时间序列的研究,可以追溯到19世纪末和20世纪初。当时,许多学者开始对时间相关的经济和社会现象进行研究,尝试发现其规律和趋势。其中最早的时间序列研究可以追溯到法国经济学家易贝尔(Maurice Allais)…...
优化索引粒度参数提升ClickHouse查询性能
当对高基数列进行过滤查询时,总是希望尽可能跳过更多的行。否则需要处理更多数据、需要更多资源。ClickHouse缺省在MergeTree表读取8192行数据块,但我们可以在创建表时调整该index_granularity 参数。本文通过示例说明如何调整该参数优化查询性能。 inde…...
selenium\webdriver\remote\errorhandler.py:242: SessionNotCreatedException问题解决
报错信息: raise exception_class(message, screen, stacktrace) E selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 112 E Current browser versi…...
MySQL 备份与恢复
MySQL 备份与恢复 一、数据库备份的分类1.1 数据备份的重要性1.2 数据库备份的分类1.2.1 从物理与逻辑的角度,分为物理备份和逻辑备份1.2.2 从数据库的备份策略角度,分为完全备份,差异备份和增量备份1.2.3 常见的备份方法 二、MySQL完全备份与…...
js中改变this指向的三种方式
js中改变this指向的三种方式 1、call方法2、apply方法3、bind方法 1、call方法 使用 call 方法调用函数,同时指定函数中 this 的值,使用方法如下代码所示: <script>const obj {uname: 刘德华}function fn(x, y) {console.log(this) …...
小程序中如何进行数据传递和通信
103. 小程序中如何进行数据传递和通信? 1. 使用页面参数传递数据: 在小程序中,可以通过页面参数来传递数据。当跳转到一个新页面时,可以将需要传递的数据作为参数传入,然后在目标页面的onLoad函数中获取参数。 示例…...
Vue3项目中引入ElementUI使用详解
目录 Vue3项目中引入 ElementUI1.安装2.引入2.1 全局引入2.2 按需引入viteWebpack 3.使用 Vue3项目中引入 ElementUI ElementUI是一个强大的PC端UI组件框架,它不依赖于vue,但是却是当前和vue配合做项目开发的一个比较好的ui框架,其包含了布局…...
计算机启动
按下主机上的 power 键后,第一个运行的软件是 BIOS,BIOS 全称叫 Base Input & Output System,即基本输入输出系统。 (8086的1MB内存) 地址 0~0x9FFFF 处是 DRAM,顶部的 0xF0000~0xFFFFF&am…...
Unity学习笔记--EventSystem事件系统在使用上需要注意的地方(很基础,但是很多人会忘记!!!)
目录 前言代码Unity 场景配置运行报错分析解决办法拓展(预告) 前言 之前有写过一篇关于事件系统实现以及使用的文章 Unity学习笔记–C#事件系统的实现与应用 最近在使用的时候遇到了一些问题,所以在此记录下,也为看到这篇文章的人…...
高手必备:JVM调优的常用命令和参数一网打尽!
大家好,我是小米!在今天的技术分享中,我将和大家一起探讨JVM调优中的常用命令和参数。作为一名热爱技术的小伙伴,希望通过本篇文章的分享,能够帮助大家更好地理解和掌握JVM调优的方法和技巧。 JVM的结构 首先&#x…...
Uniapp 开发 ①(快速上手)
作者 : SYFStrive 博客首页 : HomePage 📜: UNIAPP开发 📌:个人社区(欢迎大佬们加入) 👉:社区链接🔗 📌:觉得文章不错可以点点关注 Ǵ…...
【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...
RocketMQ延迟消息机制
两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后…...
Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器
第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...
uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...
云原生安全实战:API网关Kong的鉴权与限流详解
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关(API Gateway) API网关是微服务架构中的核心组件,负责统一管理所有API的流量入口。它像一座…...
华为OD机考-机房布局
import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...
大数据驱动企业决策智能化的路径与实践
📝个人主页🌹:慌ZHANG-CSDN博客 🌹🌹期待您的关注 🌹🌹 一、引言:数据驱动的企业竞争力重构 在这个瞬息万变的商业时代,“快者胜”的竞争逻辑愈发明显。企业如何在复杂环…...
OPENCV图形计算面积、弧长API讲解(1)
一.OPENCV图形面积、弧长计算的API介绍 之前我们已经把图形轮廓的检测、画框等功能讲解了一遍。那今天我们主要结合轮廓检测的API去计算图形的面积,这些面积可以是矩形、圆形等等。图形面积计算和弧长计算常用于车辆识别、桥梁识别等重要功能,常用的API…...
RFID推动新能源汽车零部件生产系统管理应用案例
RFID推动新能源汽车零部件生产系统管理应用案例 一、项目背景 新能源汽车零部件场景 在新能源汽车零部件生产领域,电子冷却水泵等关键部件的装配溯源需求日益增长。传统 RFID 溯源方案采用 “网关 RFID 读写头” 模式,存在单点位单独头溯源、网关布线…...
可视化预警系统:如何实现生产风险的实时监控?
在生产环境中,风险无处不在,而传统的监控方式往往只能事后补救,难以做到提前预警。但如今,可视化预警系统正在改变这一切!它能够实时收集和分析生产数据,通过直观的图表和警报,让管理者第一时间…...
