java——特殊文件日志技术

news/2024/12/23 5:33:08/

目录

  • 特殊文件
    • Properties文件
    • XML文件
      • XML文件有如下的特点
      • XML的作用和应用场景
      • 解析XML文件
  • 日志技术
    • 概述
    • 日志技术的体系结构
    • Logback日志框架
      • 概述
      • 快速入门
      • 核心配置文件logback.xml
      • 日志级别
      • 项目中使用日志框架

特殊文件

Properties文件

后缀为.properties的文件,称之为属性文件,它可以很方便的存储一些类似于键值对的数据。经常当做软件的配置文件使用。
核心作用:Properties是用来代表属性文件的,通过Properties可以读写属性文件里的内容。

20240223-161246-jO.png

Properties读取属性文件的步骤如下:

1、创建一个Properties的对象出来(键值对集合,空容器)
2、调用load(字符输入流/字节输入流)方法(哪个都行,读文本还是建议用前者),开始加载属性文件中的键值对数据到properties对象中去
3、调用getProperty(键)方法,根据键取值注意这里管道资源不需要我们手动关闭,api内部自动关

示例代码如下:

public class PropertiesTest1 {public static void main(String[] args) throws Exception {// 1、创建一个Properties的对象出来(键值对集合,空容器)Properties properties = new Properties();System.out.println(properties);//输出{}// 2、开始加载属性文件中的键值对数据到properties对象中去properties.load(new FileReader("properties-xml-log-app\\src\\users.properties"));System.out.println(properties);//输出{admin=123456,...}// 3、根据键取值System.out.println(properties.getProperty("赵敏"));System.out.println(properties.getProperty("张无忌"));// 4、遍历全部的键和值。//获取键的集合Set<String> keys = properties.stringPropertyNames();for (String key : keys) {//再根据键获取值String value = properties.getProperty(key);System.out.println(key + "---->" + value);}properties.forEach((k, v) -> {System.out.println(k + "---->" + v);});}
}

使用Properties往属性文件中写键值对,需要用到的方法如下
20240223-162107-Gj.png

往Properties属性文件中写键值对的步骤如下

1、创建Properties对象出来,
2、调用setProperty存储一些键值对数据
3、调用store(字符输出流/字节输出流, 注释),将Properties集合中的键和值写到文件中注意:第二个参数是注释,必须得加;
注意这里管道资源不需要我们手动关闭,api内部自动关

示例代码如下:

public class PropertiesTest2 {public static void main(String[] args) throws Exception {// 1、创建Properties对象出来,先用它存储一些键值对数据Properties properties = new Properties();properties.setProperty("张无忌", "minmin");properties.setProperty("殷素素", "cuishan");properties.setProperty("张翠山", "susu");// 2、把properties对象中的键值对数据存入到属性文件中去properties.store(new FileWriter("properties-xml-log-app/src/users2.properties"), "i saved many users!");}
}

运行生成一个新的文件users2.properties
20240223-162559-pK.png

XML文件

xml文件是一种在开发中经常使用的文件,是可扩展的标记语言,意思是它是由一些标签组成的,而这些标签是自己定义的。本质上是一种数据格式,可以用来表示复杂的数据关系。

XML文件有如下的特点

XML中的<标签名> 称为一个标签或者一个元素,一般是成对出现的。
XML中的标签名可以自己定义(可扩展),但是必须要正确的嵌套
XML中只能有一个根标签。
XML标准中可以有属性
XML必须第一行有一个文档声明,格式是固定的<?xml version="1.0" encoding="UTF-8"?>
XML文件必须是以.xml为后缀结尾

数据格式:
20240223-164151-6v.png

XML文件中除了写以上的数据格式之外,还有一些特殊的字符不能直接写。像 <,>,&等这些符号不能出现在标签的文本中,因为标签格式本身就有<>,会和标签格式冲突。

<data> 3 < 2 && 5 > 4 </data>
<!--  错误写法 -->
1
2

如果标签文本中有这些特殊字符,需要用一些占位符代替。

&lt;  表示 <
&gt;  表示 >
&amp; 表示 &
&apos; 表示 '
&quot; 表示 "
1
2
3
4
5

如果在标签文本中,出现大量的特殊字符,不想使用特殊字符,此时可以用CDATA区,格式如下

<data1><![CDATA[3 < 2 && 5 > 4]]>
</data1>

XML的作用和应用场景

本质是一种数据格式,可以存储复杂的数据结构,和数据关系
应用场景:经常用来做为系统的配置文件;或者作为一利
构,在网络中进行传输。

解析XML文件

使用程序读取XML文件中的数据

注意:程序员并不需要自己写原始的10流代码来解析XML,难度较大!也相当繁琐!
其实,有很多开源的,好用的,解析XML的框架,最知名的是:Dom4j(第三方研发的)

或者使用HUtool中的-XmlUtil:https://hutool.cn/docs/#/core/%E5%B7%A5%E5%85%B7%E7%B1%BB/XML%E5%B7%A5%E5%85%B7-XmlUtil

具体操作参考官方文档或者下面文章:https://blog.51cto.com/u_16099324/7177608

日志技术

概述

  1. 使用场景:
希望系统能记住某些数据是被谁操作的,比如被谁删除了?
想分析用户浏览系统的具体情况,以便挖掘用户的具体喜好?
当系统在开发中或者上线后出现了bug,崩溃了,该通过什么去分析、定位bug?
  1. 什么是日志?
    好比生活中的日记,可以记录你生活中的点点滴滴。
    程序中的日志,通常就是一个文件,里面记录的是程序运行过程中的各种信息。

  2. 日志技术的作用:
    可以將系统执行的信息,方便的记录到指定的位置(控制台、文件中、数据库中)。
    可以随时以开关的形式控制日志的启停,无需侵入到源代码中去进行修改。

日志技术的体系结构

20240223-174107-tw.png
日志框架:牛人或者第三方公司已经做好的实现代码,后来者直接可以拿去使用。
日志接口:设计日志框架的一套标准,日志框架需要实现这些接口。
注意1:因为对Commons Logging接口不满意,有人就搞了SLF4);因为对Log4的性能不满意,有人就搞了Logback。
注意2:Logback是基于slf4j的日志规范实现的框架。

Logback日志框架

概述

Logback日志框架官方网站:https://logback.qos.ch/index.html
Logback日志框架有以下几个模块:
20240223-174531-td.png

想使用Logback日志框架,至少需要在项目中整合如下三个模块:
slf4j-api: 日志接口
Logbatk-core:基础模块
logback-classic:slf4j接口模块

快速入门

需求
使用Logback日志框架,记录系统的运行信息。实现步骤
①:导入Logback框架到项目中去。
slf4j-api:日志接口
Logback-core
logback-classic
②:将Logback框架的核心配置文件logback.xml直接拷贝到src目录下(必须是src下)。
③:创建Logback框架提供的Logger对象,然后用Logger对象调用其提供的方法就可以记录系统的日志信息。

核心配置文件logback.xml

作用:对Logback日志框架进行控制的(日志的输出位置、输出格式的设置)
通常可以设置2个输出日志的位置:一个是控制台、一个是系统文件中
20240223-182148-AE.png

开启日志(ALL),取消日志(OFF)

<root level="debug"><appender-ref ref="CONSOLE"/><appender-ref ref="FILE" />
</root>

日志级别

什么是日志级别?
日志级别指的是日志信息的类型,日志都会分级别,常见的日志级别如下(优先级依次升高)

20240223-182431-bV.png

为什么要学习日志级别?

<root level="info"><appender-ref ref="CONSOLE"/><appender-ref ref="FILE" />
</root>

只有日志的级别是大于或等于核心配置文件配置的日志级别,才会被记录,否则不记录。

项目中使用日志框架

参考我之前的博客:https://blog.csdn.net/qq_42038623/article/details/106240925


http://www.ppmy.cn/news/1360368.html

相关文章

JLU吉林大学操作系统名词解释

进程 具有一定独立功能的程序关于一个数据集合的一次运行活动。是资源的分配单位。线程 又叫轻进程&#xff0c;是进程内的一个相对独立的执行流。是cpu的调度单位。忙式等待 不进入等待状态的等待叫做忙式等待&#xff0c;进程并未真正的等待状态&#xff0c;实际为运行态或者…

致CentOS 7普通用户之装机初始化说明

一&#xff1a;CentOS 7安装盘制作 1.准备&#xff1a;linux操作系统安装包&#xff0c;百度搜索下载&#xff1a;CentOS 7。&#xff08;一般安装包&#xff0c;包含CentOS 7全系列版本&#xff0c;自己选择安装配置&#xff09; 2.准备&#xff1a;rufus.exe安装盘制作软件…

Java面试问题集锦

1.JDK、JRE、JVM 三者有什么关系&#xff1f; JDK&#xff08;全称 Java Development Kit&#xff09;&#xff0c;Java开发工具包&#xff0c;能独立创建、编译、运行程序。 JDK JRE java开发工具&#xff08;javac.exe/java.exe/jar.exe) JRE&#xff08;全称 Java Runtim…

C语言中的assert.h:调试助手与断言详解

在C语言编程中&#xff0c;assert.h头文件提供了非常有用的断言&#xff08;Assertion&#xff09;功能&#xff0c;它主要用于开发和调试阶段&#xff0c;确保程序在运行时满足某些预期条件。如果这些条件未得到满足&#xff0c;则程序会立即停止执行&#xff0c;并打印出有关…

dpdk环境搭建和工作原理

文章目录 1、DPDK环境搭建1.1、环境搭建1.2、编译DPDK 2、DPDK工作原理 1、DPDK环境搭建 1.1、环境搭建 工具准备&#xff1a;VMware、ubuntu16.04。 &#xff08;1&#xff09;VMware添加两个网卡。桥接网卡作为 DPDK 运行的网卡&#xff0c;NAT 网卡作为 ssh 连接的网卡。 …

Git介绍与使用

Git介绍与常用命令的使用 目录: 一、Git简介 二、Git简单命令行入门 三、Git常用命令 四、常见问题补充 一、Git简介 Git 是一个开源的分布式版本控制系统&#xff0c;是目前世界上最先进、最流行的版本控制系统。可以快速高效地处理从很小到非常大的项目版本管理。特点&…

Linux命令-chcon命令(修改对象(文件)的安全上下文)

说明 chcon命令 是修改对象&#xff08;文件&#xff09;的安全上下文&#xff0c;比如&#xff1a;用户、角色、类型、安全级别。也就是将每个文件的安全环境变更至指定环境。使用 --reference 选项时&#xff0c;把指定文件的安全环境设置为与参考文件相同。chcon命令位于 /…

Linux 查看内存和磁盘使用情况

目录 1. 查看内存情况 2. 查看磁盘情况 3. 查看文件或目录的磁盘空间使用情况 4. *典型场景 4.1. 前言 4.2. 场景 4.3. 原因 4.4. 措施 4.5. 参考 1. 查看内存情况 使用以下命令来查看系统内存大小&#xff1a; > free -htotal used free sha…