特殊文件 - 日志技术

109 阅读4分钟

特殊文件 - 日志技术

1 Properties

2.1 概念

​ 是一个Map集合(键值对集合),用于记录一些键值对的信息,而且这些信息相互之间没有太大的关联, 例如常用于记录用户账号密码, 或者JDBC的账号密码

2.2 作用

​ Properties是用来代表属性文件的,通过Properties可以读写属性文件里的内容。

2.3 构造器

​ 用于构建Properties集合对象(空容器): public Properties()

2.4 常用方法
	- 通过字节输入流,读取属性文件里的键值对数据: public void load(InputStream is)

	- 通过字符输入流,读取属性文件里的键值对数据: public void load(Reader reader)

	- 根据键获取值(其实就是get方法的效果): public String getProperty(String key)

	- 获取全部键的集合(其实就是ketSet方法的效果): public Set<String> 			stringPropertyNames()

	- 保存键值对数据到Properties对象中去: public Object setProperty(String key, String value) 

	- 把键值对数据,通过字节输出流写出到属性文件里去: public void store(OutputStream os, String comments)

	- 把键值对数据,通过字符输出流写出到属性文件里去: public void store(Writer w, String comments)
2.5 Proterties 和中文

​ 如果使用字节流, 则读写都乱码

​ 如果使用字符流, 则读写不会乱码

2 xml

2.1 概念

​ 本质是一种数据的格式,可以用来存储复杂的数据结构,和数据关系。

2.2 特点

​ - XML中的“<标签名>” 称为一个标签或一个元素,一般是成对出现的。

​ - XML中的标签名可以自己定义(可扩展),但必须要正确的嵌套。

​ - XML中只能有一个根标签

​ - XML中的标签可以有属性。

​ - 如果一个文件中放置的是XML格式的数据,这个文件就是XML文件,后缀一般要写成.xml。

2.3 语法规则

​ XML文件的后缀名为:xml,文档声明必须是第一行

2.3.1 注释

2.3.2 特殊符号
&lt;    <  小于
&gt;    >  大于
&amp;   &  与 
&apos;  '  单引号
&quot;  "  引号
2.3.3 CDATA

2.4 dom4j
2.4.1 SAXReader

​ Dom4j提供的解析器,可以认为是代表整个Dom4j框架

	- 构建Dom4J的解析器对象: public SAXReader() 

	- 把XML文件读成Document对象: public Document read(File file)

	- 通过字节输入流读取XML文件: public Document read(InputStream is)
2.4.2 Document
 获得根元素对象: Element getRootElement() 
2.4.3 Element
	- 得到元素名字: public String getName()

	- 得到当前元素下所有子元素: public List<Element> elements()

	- 得到当前元素下指定名字的子元素返回集合: public List<Element> elements(String name)

	- 得到当前元素下指定名字的子元素,如果有很多名字相同的返回第一个: public Element 		element(String name)

	- 通过属性名直接得到属性值: public String  attributeValue(String name)

	- 得到指定名称的子元素的文本: public String elementText(子元素名)

	- 得到文本: public String getText()

3 日志技术

在Java中,日志是一种记录应用程序运行时状态、调试信息以及其他相关信息的一种机制。它是开发和维护应用程序时非常重要的工具之一。

Java提供了内置的日志记录框架,名为Java日志(Java Logging)。Java日志为开发人员提供了一种方便、灵活的方式来记录应用程序的运行情况。它可以帮助开发人员进行故障排除、监视应用程序的行为,并收集有关应用程序性能和运行状况的信息。

3.1 作用

​ 以将系统执行的信息,方便的记录到指定的位置(控制台、文件中、数据库中)。

​ 可以随时以开关的形式控制日志的启停,无需侵入到源代码中去进行修改

3.2 日志技术的体系结构
3.2.1 日志框架

​ JUL(java.util.loggiing)

​ Log4j

​ Logback

​ 其他实现

3.2.2 日志接口

​ Commons Logging (JCL)

​ Simple Logging Facade for Java (SLF4J)

3.2.3 主要部分
  1. 记录器(Logger):记录器表示一个具体的日志记录源,开发人员可以通过记录器来输出日志消息。
  2. 处理器(Handler):处理器定义了如何处理和传递日志记录。它可以将日志消息写入控制台、文件、数据库等目标。
  3. 格式化器(Formatter):格式化器用于定义日志消息的输出格式。
  4. 过滤器(Filter):过滤器允许开发人员根据特定条件过滤不需要的日志消息。
3.3 日志框架的使用
3.3.1 导jar包
slf4j-api:日志接口

logback-core:基础模块

logback-classic:功能模块
3.3.2 在src下导入logback.xml文件
3.3.3 日志级别
	trace	追踪,指明程序运行轨迹
	debug	调试,实际应用中一般将其作为最低级别,而 trace 则很少使用
	info	输出重要的运行信息,数据连接、网络连接、IO操作等等,使用较多
	warn	警告信息,可能会发生问题,使用较多
	error	错误信息,  使用较多

级别排序: trace < debug < info < warn < error

示范输出log文件 hello,world

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class test {
    public static final Logger logger = LoggerFactory.getLogger(test.class);
    public static void main(String[] args) {
        logger.info("hello, world");
    }
}