Java日志框架Log4j 2详解

03-15 1717阅读 0评论

有时希望能够以文件的形式记录执行过程中出现的异常信息,甚至记录程序正常运行的关键步骤,以便日后查看,那么该如何处理呢?

Java日志框架Log4j 2详解,Java日志框架Log4j 2详解,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,使用,方法,设置,第1张
(图片来源网络,侵删)

答:显然,可以自行编程实现这个需求,但是,从更注重效率和性能的方面考虑,还有一个更好的选择,那就是使用开源日志框架。

使用工具 IntelliJ IDEA Community Edition 2023.2.4

使用语言 Java8/JDK1.8

目录

1. Java中的日志框架

1.1 日志的主要用途

Java日志框架Log4j 2详解,Java日志框架Log4j 2详解,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,使用,方法,设置,第2张
(图片来源网络,侵删)

1.2  常用日志框架

1.3 Log4j 2的优势

2.Log4j 2下载和配置

2.1 Log4j 2下载地址

2.2 具体操作

3.使用Log4j 2记录日志 

Java日志框架Log4j 2详解,Java日志框架Log4j 2详解,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,使用,方法,设置,第3张
(图片来源网络,侵删)

3.1 编写配置文件 

3.2 定义日志记录器

3.3 记录日志

3.3.1 常用的日志记录方法

3.3.2 日志记录器的日志级别

3.3.2.1 日志格式要求

3.3.3 xml案例

3.3.4 xml文件配置文件的各节点及其属性介绍

3.3.5 日志输出格式的常用占位符 

3.3.5.1 常用的占位符及其含义

3.3.6 编写存入的格式注意


1. Java中的日志框架

1.1 日志的主要用途

程序在开发完成后会被不同系统环境的用户使用,在使用过程中可能会出现各类异常,程序出现的技术错误信息是提供给开发人员定位问题并解决问题的。将这些信息直接展示给用户看是没有任何意义的。这时,可以将用户执行的所有操作和程序运行的过程记录到日志中,开发人员可以通过分析日志内容,快速定位并诊断问题。

综上所述,对于一个应用程序来说,日志记录是必不可少的。它类似于生活中的日记,可以用来记录用户操作、系统运行状态等,是一个系统的重要组成部分。日志的主要用途如下:

  1. 问题追踪:辅助排查和定位问题,优化程序运行性能;
  2. 状态监控:通过日志分析,可以监控系统的运行状态;
  3. 安全审计:主要体现在安全上,可以发现非授权操作;

1.2  常用日志框架

1.2.1 Apache Log4j

Apache Log4j是基于Java的日志记录工具,现在是Apache软件基金会的一个项目。Log4j是几种Java日志框架之一;

 1.2.2 Commons Logging

Apache基金会所属的项目,是一套Java日志接口;

1.2.3 SLF4J

类似于Commons Logging,是一套简易Java日志门面,本身并无日志的实现;

1.2.4 Logback

一套日志组件的实现(属于SLF4J阵营);

1.2.5 JUL(Java Util Logging)

自Java1.4以来的官方日志实现;

1.2.6 Log4j 2

Apache重写Log4j 1.x,成立新的项目Log4j 2。Log4j 2是Apache开发的一款升级产品;

1.3 Log4j 2的优势

Log4j 2是一款非常优秀的日志框架,Log4j 2与Log4j相比发生了很大变化,日志的吞吐量及性能有很大的提升,解决了死锁的问题,配置更加简单灵活,它不兼容Log4j。Log4j 2具有Logback的所有特性。

2.Log4j 2下载和配置

2.1 Log4j 2下载地址

要使用Log4j 2,需要下载Log4j 2的.jar文件,登录Log4j官网https://logging.apache.org/log4j/2.x/,下载Log4j 2压缩文件。这次以Log4j 2.13.3为例,压缩包为apache-log4j-2.13-3-bin.zip,该压缩包解压后,将log4j-api-2.13.3.jar和log4j-core-2.13.3两个jar包导入项目中。具体操作如下:(也可以是其他版本,文件类型的前面一个就是版本号)

2.2 具体操作

Java日志框架Log4j 2详解

  1. 在项目文件src文件夹中创建lib文件夹,将log4j-api-2.13.3.jar和log4j-core-2.13.3.jar保存在其中。(版本号可以不同);
  2. 在IntelliJ IDEA开发环境中,执行"File"-"Project Structure"命令,打开"Project Structure"(项目结构)对话框,选择"Modules"(模块)选项,在右侧窗格中选择"Dependencies"(依赖)选项卡后,单击右侧"+"按钮,在打开的菜单中执行"JARs or directories"(JAR 或 目录)命令;
  3. 从lib文件夹中选择两个.jar文件,单击"OK"按钮,将其添加到列表中并选中,单击"OK"按钮。(选中以上图片中的两个jar文件)

3.使用Log4j 2记录日志 

通过前面的操作,已经将Log4j 2所需的.jar文件导入项目中,下面是使用Log4j 2记录日志的步骤。

3.1 编写配置文件 

配置文件用来配置日志信息,自定义日志的输出位置、格式和内容。配置文件的扩展名可为.xml、.json或.jsn等。Log4j 2中没有默认的配置文件,需要手工创建,一般使用log4j2.xml命名配置文件(必须使用log4j2作为文件名,不然控制台上不会显示日志信息,log4j2文件必须放在src首级目录中); 

3.2 定义日志记录器

 在使用Log4j 2时,需要先在类中获取一个Logger对象,然后通过调用静态方法LogManager.getLogger()实现。这个Logger对象被称为日志记录器。获取日志记录器的方法如下:

import org.apache.logging.log4j.LogManager;//这个一定不要选错了,不然不会使用你编写的xml文件的

import org.apache.logging.log4j.Logger;

//省略代码
private static Logger 对象名=LogManager.getLogger(类名.class.getName());

在上面的代码中,使用getLogger()方法获取了一个Logger对象,该方法有一个String类型参数,使用".class.getName()"获取当前类全名作为参数。 

3.3 记录日志

3.3.1 常用的日志记录方法

Logger类可供开发人员记录日志信息,它提供了一系列方法来输出不同级别的日志信息,Logger类常用的日志记录方法如下:

3.3.1.1 记录debug级别日志 

public void debug(Object msg)

public void debug(Object msg,Throwable t)


3.3.1.2 记录info级别日志

public void info(Object msg)

public void info(Object msg,Throwable t)

3.3.1.3 记录warn级别日志

public void warn(Object msg)

public void warn(Object msg,Throwable t)

3.3.1.4 记录error级别日志

public void error(Object msg)

public void error(Object msg,Throwable t)

3.3.1.5 记录fatal级别日志

public void fatal(Object msg)

public void fatal(Object msg,Throwable t)

3.3.2 日志记录器的日志级别

all


免责声明
本网站所收集的部分公开资料来源于AI生成和互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
评论列表 (暂无评论,1717人围观)

还没有评论,来说两句吧...

目录[+]