特殊文件 - 日志技术
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 特殊符号
< < 小于
> > 大于
& & 与
' ' 单引号
" " 引号
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 主要部分
- 记录器(Logger):记录器表示一个具体的日志记录源,开发人员可以通过记录器来输出日志消息。
- 处理器(Handler):处理器定义了如何处理和传递日志记录。它可以将日志消息写入控制台、文件、数据库等目标。
- 格式化器(Formatter):格式化器用于定义日志消息的输出格式。
- 过滤器(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");
}
}