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文档的类型。
●最简单的声明语法:
●用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约束:语法相对复杂,功能也相对强大。学习成本相对高,在这里就不细说了