用一篇文章来带你学习Log4j的组件和功能以及认识与了解XML语言的语法与作用

Log4j部分学习

log4j是用来干什么的 ?

日志是应用软件中不可缺少的部分,Apache的开源项目log4j是一个功能强大的日志组件,提供方便的日志记录。

在apache网站:jakarta.apache.org/log4j 可以免费下载到Log4j最新版本的软件包。日志信息对于开发人员是非常重要e.printStackTrace(); 输出异常信息,程序员就可以根据异常信息排查问题.

Log4j的三个重要的组件

Log4j由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志信息的输出格式。

日志信息的优先级从高到低有ERROR、WARN、 INFO、DEBUG,分别用来指定这条日志信息的重要程度;

日志信息的输出目的地指定了日志将打印到控制台还是文件中;

输出格式则控制了日志信息的显 示内容。

log4j使用步骤

1.导入log4j所需要的jar包

链接:https://pan.baidu.com/s/1G6pO9Vt08Ayxswo-nQlAJg .
提取码:xryy

2.将log4j.properties文件复制到src目录下

链接:https://pan.baidu.com/s/1Pg4yrD7Czb9xlk26NwFsLw .
提取码:xryy

3.修改log4j.properties文件配置

在这里插入图片描述

配置详解

#配置根

log4j.rootLogger = [ level ] , appenderName, appenderName…
log4j.rootLogger = info(日志级别),stdout(标准输出),D(日志地方,编号)

#输出到控制台

log4j.appender.stdout = org.apache.log4j.ConsoleAppender 输出日志到控制台
log4j.appender.stdout.Target = System.out 表示控制台输出
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout 日志布局
log4j.appender.stdout.layout.ConversionPattern = [%p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n 日志输出格式

#输出到文件

log4j.appender.D = org.apache.log4j.FileAppender 输出到文件
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender 每天生成一个新的日志文件
log4j.appender.D.File = E://logs/log.log 指定地址下的日志文件
log4j.appender.D.Append = true 是否追加日志内容
log4j.appender.D.layout = org.apache.log4j.PatternLayout 日志布局
log4j.appender.D.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] -[%l] %m%n 日志输出格式

#日志内容布局

#log4j.appender.appenderName.layout =
#org.apache.log4j.HTMLLayout(以HTML表格形式布局),
#org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
#org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)

#ConversionPattern参数的格式含义 (类似于正则表达式)

#%c 输出日志信息所属的类的全名
#%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy-MM-dd HH:mm:ss },输出类似:2002-10-18- 22:10:28
#%f 输出日志信息所属的类的类名
#%l 输出日志事件的发生位置,即输出日志信息的语句处于它所在的类的第几行
#%m 输出代码中指定的信息,如log(message)中的message
#%n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”
#%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL。如果是调用debug()输出的,则为DEBUG,依此类推
#%r 输出自应用启动到输出该日志信息所耗费的毫秒数
#%t 输出产生该日志事件的线程名

代码及功能展示

在这里插入图片描述
在这里插入图片描述

然后正常的运行项目

在这里插入图片描述

同时也会按照配置进行输出操作

在这里插入图片描述
在这里插入图片描述

XML部分知识学习

什么是XML语言?

XML 指可扩展标记语言(Extensible Markup Language)很类似于HTML

XML 的设计宗旨是传输,存储数据,而非显示数据

XML 标签没有被预定义。您需要自行定义标签。

XML 被设计为具有自我描述性。

XML 与 HTML 的主要差异

XML 和 HTML 为不同的目的而设计:

● XML 被设计为存储数据,其焦点是数据的内容。

● HTML 被设计用来显示数据,其焦点是数据的外观。

XML的优势

每种语言的产生都能完成某些特定的功能,XML作为一种标记语言也不例外。XML最大的优势在于它能对各种编程语言编写的数据进行管理,使得在任何平台下都能通过解析器来读取XML数据。

XML语法

● 文档声明 ● 元素 标签 ● 属性 ● 注释

在这里插入图片描述

文档声明

在编写XML文档时,需要先使用文档声明,声明XML文档的类型。
●最简单的声明语法:

<?xml version="1.0" ?>

●用encoding属性说明文档的字符编码:

<?xml version="1.0"encoding="GB2312" ?>

创建 XML 文档

元素

● 元素是XML文档内容的基本单元。语法上,一个元素包括一个起始标记,一个结束标记以及标记之间的数据内容。
例如:<出版社>电子工业出版社</出版社>

● 元素中还可以嵌套别的元素。在XML文档中,仅有一个根元素,可以有多个子元素,允许出现空元素。

XML 命名规则

XML 元素必须遵循以下命名规则:

1.名称可以含字母、数字以及其他的字符

2.名称不能以数字或者标点符号开始

3.名称不能以字符 “xml”(或者 XML、Xml)开始

4.名称不能包含空格

5.可使用任何名称,没有保留的字词

XML 的语法规则

● 所有 XML 元素都须有关闭标签
● XML 标签对大小写敏感
● XML 必须正确地嵌套
● XML 文档必须有根元素
● XML 的属性值须加引号
● 在 XML 中,有 5 个预定义的实体引用:

在这里插入图片描述

属性

属性是用来修饰某个元素的,如:

<root>
<a attribute="aa">this is test</a>

属性名 属性值

</root>

关于元素的属性需注意如下几个问题:

属性的值必须用引号括起来,如: attribute1=“aa” 或attribute3=‘aa’ ;

元素的属性以名和值成对出现;

用来修饰同一个元素的属性的属性名不能相同 ;

属性值不能包含“&”、“’”、“<”等字符

实例
<?xml ver s ion="1.0" encoding="utf-8"?>

< e m p l o y e e s >
< e m p l o y e e >
< e m p I D > 1 < / e m p I D >
< e m p N a m e >张三< / e m p N a m e >
< e m pAd d r e s s >西安< / e m pAd d r e s s >
< / e m p l o y e e >
< e m p l o y e e >
< e m p I D > 2 < / e m p I D >
< e m p N a m e >王五< / e m p N a m e >
< e m pAd d r e s s >北京< / e m pAd d r e s s >
< / e m p l o y e e >

XML约束概述

什么是XML约束

在XML技术里,可以编写一个文档来约束一个XML文档的书写规范,这称之为XML约束。

为什么需要XML约束 ?

由于xml的标签由用户自己定义,因此在开发的时候,每个人都可以根据自己的需求来定义xml标签,这样导致项目中的xml难以维护,因此需要使用一定的规范机制来约束xml文件中的标签书写。

常用的约束技术

DTD约束:语法相对简单,功能也相对简单。学习成本也低。(用法类似Css)

在这里插入图片描述

Schema约束:语法相对复杂,功能也相对强大。学习成本相对高,在这里就不细说了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值