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/logback
                https://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-XSD
		https://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>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/32550.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

消防通道堵塞识别 opencv

消防通道堵塞识别系统通过opencvpython网络模型技术&#xff0c;消防通道堵塞识别对消防通道的状态进行实时监测&#xff0c;检测到消防通道被堵塞时&#xff0c;将自动发出警报提示相关人员及时采取措施。OpenCV的全称是Open Source Computer Vision Library&#xff0c;是一个…

XILINX 4种7系列FPGA的特点与应用场景详解

&#x1f3e1;《Xilinx FPGA开发宝典》 目录 1&#xff0c;概述2&#xff0c;性能成本分析3&#xff0c;性能提升方法4&#xff0c;总结 1&#xff0c;概述 7系列FPGA包括Spartan-7&#xff0c;Artix-7&#xff0c;Kintex-7和Virtex-73类&#xff0c;分别简称为S7,A7,K7和V7。本…

微服务远程调用openFeign整合

✅作者简介&#xff1a;大家好&#xff0c;我是Cisyam&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Cisyam-Shark的博客 &#x1f49e;当前专栏&#xff1a; 微服务探索之旅 ✨特色专…

Spring Boot中的@GetMapping注解,如何使用

Spring Boot中的GetMapping注解 介绍 Spring Boot是一个流行的Java框架&#xff0c;它提供了许多方便的注解和工具&#xff0c;使得Web应用程序的开发变得更加容易。其中&#xff0c;GetMapping注解是Spring Boot中最常用的注解之一&#xff0c;它可以帮助开发者定义和处理HT…

Visual modflow Flex地下水数值模拟及参数优化、抽水实验设计与处理、复杂的饱和/非饱和地下水流分析

专题一 地下水数值软件的操作流程、建模步骤和所需资料处理及相关注意事项 [1] Visual MODFLOW Flex特征 [2] Visual MODFLOW Flex软件界面及模块 [3] 地下水数值模拟的建模步骤及数据需求 专题二 模型建模操作方法 技巧、真实案例演练、特殊问题处理 [1] 直接模型建模的操…

农产品批发采购APP开发 手机里的农产品市场

农业发展是民生之本&#xff0c;随着互联网时代的到来各行各业都迎来了新的发展机遇&#xff0c;农产品批发采购、配送服务等方面也发生了很大的改变&#xff0c;各种农产品商城APP、农产品批发采购平台、农产品供应管理系统的开发让包含农产品信息、数据、物流、配送、仓储、质…

Web3通过 MetaMask简单演示对ganache虚拟环境账号进行管理操作

上文 Web3通过ganache运行起一个本地虚拟区块链 我们通过ganache在本地运行起了一个虚拟的区块链环境 那么 接下来 我们就要用 MetaMask 来管理这个东西了 如果您还没有安装 可以访问文章Web3 将 MetaMask添加入谷歌浏览器 扩展程序中和Web3开发准备工作 手把手带你创建自己的 …

微信小程序页面导航

1.声明式导航 1.1声明式跳转Tab页面 1.1.1配置的Tab页面 1.1.2页面跳转书写 <navigator url"/pages/home/home" open-type"switchTab">跳转首页</navigator> 1.2.3页面展示 1.2声明式跳转到非Tab页面 1.2.1页面跳转代码 <navigator ur…

一面、二面、三面有什么区别?

很多公司面试都分一面、二面、三面甚至更多&#xff0c;大家可能会好奇&#xff0c;为什么要面这么多面&#xff0c;每一面又有啥区别呢&#xff1f; 首先我来回答下为什么要这么多面&#xff0c;最核心的是最后3点&#xff1a; 如果光是一个人面&#xff0c;担心会看走眼&…

详解如何使用nvm管理Node.js多版本

目录 NVM进行NodeJS多版本管理 背景 安装步骤 1. 下载nvm安装包 2. 安装nvm 使用步骤 下载nodejs 切换版本nodejs ​编辑 常用命令 NVM进行NodeJS多版本管理 背景 有的时候开发环境需要多个NodeJS的版本&#xff0c;这个时候就可以用NVM进行管理。 安装步骤 1. 下载n…

LeetCode 打卡day44--完全背包问题及其应用

一个人的朝圣 — LeetCode打卡第44天 知识总结 Leetcode 518. 零钱兑换 II题目说明代码说明 Leetcode 377. 组合总和 Ⅳ题目说明代码说明 知识总结 今天结束了完全背包问题, 完全背包问题与01背包问题的区别在于可以无限次的使用物品的数量. 其和01背包的差别在于, 01背包先遍…

easypoi 导出word并插入echart图片和文件

一 pom 文件引入&#xff1a;<!-- 目前的版本对应 poi 4.1.2 和 xmlbeans 3.1.0 , poi 3.17 和 xmlbeans 2.6.0 --><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.1.2</version&…

《后端存储实战课》课程学习笔记(三)

流量大、数据多的商品详情页系统该如何设计&#xff1f; 电商的商品系统主要功能就是增删改查商品信息&#xff0c;没有很复杂的业务逻辑&#xff0c;支撑的主要页面就是商品详情页。设计这个系统的存储&#xff0c;你仍然需要着重考虑两个方面的问题。 第一&#xff0c;要考虑…

【计算机网络】可靠传输的实现机制

参考视频 https://www.bilibili.com/video/BV1c4411d7jb 1、停止-等待协议SW (Stop-and-Wait) 1.1 信道利用率 1.2 题目 1.3 小结 2.回退N帧协议GBN (Go-Back-N) 1.1 题目 1.2 小结 3.选择重传协议SR (Selective-Repeat) 3.1 过程 3.2 发送窗口 和 接收窗口尺寸范围 4.小结 5.…

Centos7单机安装Redis

安装Redis依赖 Redis是基于C语言&#xff0c;因此首先需要安装Redis所需要的gcc依赖&#xff1a; yum install -y gcc tcl ​ 上传安装包并解压 上传安装包redis-6.2.12至/home目录下 ​ # 解压 tar -xzf redis-6.2.12.tar.gz # 安装 cd redis-6.2.12 make && mak…

第七十天学习记录:高等数学:微分(宋浩板书)

微分的定义 基本微分公式与法则 复合函数的微分 微分的几何意义 微分在近似计算中应用 sin(xy) sin(x)cos(y) cos(x)sin(y)可以用三角形的几何图形来进行证明。 假设在一个单位圆上&#xff0c;点A(x,y)的坐标为(x,y)&#xff0c;点B(x’, y’)的坐标为(x’, y’)。则以两点…

文言一心,ChatGLM-6B和ChatGPT等模型概述

原文首发于博客文章大语言模型概况 定义 &#xff08;个人理解的&#xff09;大语言模型&#xff08;Large Language Model&#xff09;是一种基于深度学习技术的自然语言处理通用模型&#xff0c;它可以通过学习大规模文本数据的模式和规律&#xff0c;从而实现对自然语言的理…

生物群落(生态)数据统计分析与绘图

R 语言作的开源、自由、免费等特点使其广泛应用于生物群落数据统计分析。生物群落数据多样而复杂&#xff0c;涉及众多统计分析方法。以生物群落数据分析中的最常用的统计方法回归和混合效应模型、多元统计分析技术及结构方程等数量分析方法为主线&#xff0c;通过多个来自经典…

Vue Router 相关理解 基本路由 多级路由

6.1.相关理解 6.1.1.vue-router 的理解 vue的一个插件库&#xff0c;专门用来实现SPA应用 6.1.2.对SPA应用的理解 单页Web应用&#xff08;single page web application&#xff0c;SPA&#xff09;整个应用只有一个完整的页面点击页面中的导航链接不会刷新页面&#xff0c…

2023.6.27宝塔面板无法正常进入

解决访问宝塔面板提示404 Not Found 情况说明&#xff1a;访问宝塔面板提示404&#xff0c;或者忘记外网面板地址 大概率访问路径不够全 输入以下内容查看 /etc/init.d/bt default 如果还是不行再重启宝塔面板&#xff0c;执行上面步骤 /etc/init.d/bt stop /etc/init.d/b…