IDEA下Logback.xml自动提示功能配置

news2024/11/20 8:40:45

首先打开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>

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python 视频转字符视频 bate

只需要在最后一行括号填入视频路径即可 import os from PIL import Image, ImageDraw, ImageFont import cv2 import time from tqdm import tqdm import threading if __name__ __main__:# path rimg\sportball\0.jpgdef cv2_pit_imgchar(path,save_path):def create_i…

Flutter系列(十)实现个人中心页

基础工程&#xff1a; Flutter系列&#xff08;四&#xff09;底部导航顶部导航图文列表完整代码_摸金青年v的博客-CSDN博客 一、前言 本文用flutter实现个人中心页布局&#xff0c;效果如下图&#xff1a; 二、使用的组件 1.颜色渐变&#xff1a;LinearGradient 线性渐变组…

ChatGLM-6B第二代模型开源,拿下LLM模型中文能力评估榜单第一名

ChatGLM-6B 自3月14日发布以来&#xff0c;深受广大开发者喜爱。截至 6 月24日&#xff0c;来自 Huggingface 上的下载量已经超过 300w。 为了更进一步促进大模型开源社区的发展&#xff0c;我们再次升级 ChatGLM-6B&#xff0c;发布 ChatGLM2-6B 。在主要评估LLM模型中文能力…

【SWAT水文模型】ArcSWAT各种报错总结

1 Error Number :-2147467259&#xff1b; 对 COM 组件的调用返回了错误 HRESULT E_FAIL 1.1 报错内容 Error Number :-2147467259 Eror Message: Eror HRESULTE FAIL has been retuned froma alltoa a COM component. Module:mAnalysis Function:dissolve Procedurure:1 随后…

DDR5这么快,为啥还能那么稳?

高速先生成员--姜杰 大家都在关注DDR5跑的有多快&#xff0c;高速先生却在关心它为什么能够跑的稳…… 内存的稳定性&#xff0c;离不开RAS功能。提起RAS&#xff0c;熟悉DDR的小伙伴们一定记得行地址选通信号&#xff08;Row Address Strobe, RAS&#xff09;&#xff0c;不…

Vuforia专题:设置AR摄像头自动对焦

Vuforia专题&#xff1a;设置AR摄像头自动对焦 一&#xff0c;前言 在之前使用的时候&#xff0c;如果没有设置自动对焦可以发现&#xff0c;摄像头画面极其模糊。并导致识别的结果不是很理想 加上自动对焦后的效果如下&#xff1a; 二、具体步骤 1、ARCamera添加脚本Cam…

Axure教程——自动获取时间

本文介绍用Axure制作的自动获取时间 效果预览 预览地址&#xff1a;https://y0pdhk.axshare.com 原型制作 1、需要的元件 六个矩形 一个动态面板 2、制作 年月日 拖入一个矩形元件&#xff0c;命名为“年月日”&#xff0c;文本设置为“年月日”&#xff0c;如图&#xff1a…

基于FFMPEG的视频拉流并传给OPENCV显示

基于FFMPEG的视频拉流并传给OPENCV显示 依赖文件解压代码编写依赖配置编译运行 依赖文件解压 将ffmpeg-master-latest-win64-gpl-shared解压&#xff0c;得到如下所示文件夹&#xff1a; 将其中的bin目录下的.dll文件复制到C:\Windows\System32目录下。 代码编写 基于FFMPE…

vscode 的终端不识别npm 命令

1.问题描述 在vscode终端输入npm指令无法识别 但是在cmd就可以 在PowerShell输入npm同样无法识别 2.解决办法 点击火狐浏览器可以看到有一个路径 没有火狐浏览器点击vscode同样可以看到路径 注&#xff1a;箭头指向的就是 然后在我的电脑找到该路径 下的npm文件 删除该…

SaaS架构方案

四大架构体系&#xff08;业务架构&#xff08;省略&#xff09;、系统架构、技术架构、布署架构&#xff09; 1.业务架构&#xff08;省略&#xff09; 2.系统架构 3.技术架构图 4.布署架构

Kubernetes核心概念汇总—Kubernetes 架构

一、概述 此页面是 Kubernetes 的概述。 Kubernetes 是一个可移植、可扩展的开源平台&#xff0c;用于管理容器化的工作负载和服务&#xff0c;可促进声明式配置和自动化。 Kubernetes 拥有一个庞大且快速增长的生态&#xff0c;其服务、支持和工具的使用范围相当广泛。 Kub…

杂记 | Linux服务器使用docker安装keycloak(docker-compose)

文章目录 01 关于keycloak02 准备工作2.1 安装docker2.2 安装docekr-compose2.3 获取https证书 03 编写docker-compose.yml04 访问keycloak 01 关于keycloak Keycloak是一个开源的身份和访问管理解决方案&#xff0c;由RedHat公司开发和维护。它提供了一套全面的工具和功能&am…

centos 安装 nginx

1.下载nginx安装包 wget -c https://nginx.org/download/nginx-1.24.0.tar.gz 下载到了当前目录下 2.解压安装包 解压后的结果 3.安装依赖 yum -y install gcc gcc-c make libtool zlib zlib-devel openssl openssl-devel pcre pcre-devel 4. ./configure --prefix/usr/lo…

雷达侦察系统

文章目录 前言 一、系统组成 二、数字信道化侦察接收机 三、信号处理器 总结 前言 本人主要从事电子侦察中辐射源目标定位的研究工作&#xff0c;下面简单介绍传统雷达侦察系统的简单系统组成&#xff0c;希望有研究相同方向的同行可以私信交流。 一、系统组成 典型雷达侦察…

python机器学习—— 数据预处理 算法初步

目录 数据预处理1.获取数据2.处理缺失值3.划分数据集4.数据预处理和PCA降维5.算法实现&#xff1a;估计器 数据预处理 1.获取数据 from sklearn.datasets import load_iris liload_iris() print("获取特征值") print(li.data) print("目标值",li.target)#…

千万级规模微服务稳定性技术揭秘:隔离策略

随着当今云原生的发展&#xff0c;无状态微服务系统通过其良好的设计理念和相关技术栈的成熟&#xff0c;成为越来越多企业建设系统的首选&#xff0c;但不可避免的是随着微服务拆分系统增多&#xff0c;稳定性慢慢会被重视&#xff0c;如何保证服务7*24小时不间断服务&#xf…

数据结构---循环链表

数据结构—循环链表 循环单链表 typedef struct LNode {ElemType data;struct LNode* next; }LNode, *LinkList;循环单链表初始化 bool InitList(LinkList &L) {L (LNode*)malloc(sizeof(LNode));if (L NULL) return false;L->next L; //头结点next指向头结点retur…

Postman:mock server简单使用,自定义获取response body

一.mock server的作用 创建一个虚假的服务器接口&#xff0c;只要访问就可以返回设定好的response. 可用于接口调试和接口自动化测试。 二.操作步骤 首先创建一个mock server 指定response body 创建成功后Collections那里会自动多一个跟mock server 对应的接口 接下来…

前端Vue自定义银行卡号格式化组件 中间卡号文本转星号

前端Vue自定义银行卡号格式化组件 中间卡号文本转星号, 下载完整代码请访问uni-app插件市场地址&#xff1a;https://ext.dcloud.net.cn/plugin?id13230 效果图如下: # cc-format-card #### 使用方法 使用方法 <!-- cardNo:银行卡号 isStar: 是否转星号 --> <cc…

基于Debian 12 “Bookworm “的SparkyLinux 7.0 “Orion Belt” 正式发布

导读SparkyLinux 开发人员今天宣布&#xff0c;SparkyLinux 7.0 “Orion Belt “已经发布并全面上市&#xff0c;这是这个基于Debian的GNU/Linux发行版的最新稳定更新。 基于最近发布的Debian 12 “Bookworm “操作系统系列&#xff0c;并与2023年7月15日的资料库同步&#xff…