当前位置:网站首页>Log4j2基本使用
Log4j2基本使用
2022-08-10 05:41:00 【clear0217】
Log4j2基本使用
Log4j2简介
log4j2是log4j 1.x 的升级版,2015年5月,Apache宣布log4j1.x 停止更新。最新版为1.2.17。
log4j2参考了logback的一些优秀的设计,并且修复了一些问题,因此带来了一些重大的提升,主要有:
1、异常处理:在logback中,Appender中的异常不会被应用感知到,但是在log4j2中,提供了一些异常处理机制。
2、性能提升:log4j2相较于log4j 1和logback都具有很明显的性能提升。
3、自动重载配置:参考了logback的设计,提供自动刷新参数配置,可以动态的修改日志的级别而不需要重启应用。
4、无垃圾机制,log4j2在大部分情况下,都可以使用其设计的一套无垃圾机制,避免频繁的日志收集导致的jvm gc。
1.Jar包依赖
直接依赖
在Maven的父工程pom.xml添加如下依赖:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.12.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.12.1</version>
</dependency>
</dependencies>
</dependencyManagement>
使用bom管理依赖
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-bom</artifactId>
<version>2.12.1</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>
然后在使用Log4j2的子工程pom.xml添加如下依赖,
这样就不用写具体的版本号了,
保证项目的子工程都使用相同版本的Log4j2。
<dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
</dependency>
</dependencies>
在复杂场景下,可能不止依赖上面两个jar包,
这种方法可以保证Log4j2模块之间的版本一致。
2.测试代码
为了演示Log4j2的功能,创建如下的测试类:
package org.apache.logging.log4j;
public class Log4j2Test {
private static Logger LOG = LogManager.getLogger(Log4j2Test.class);
public static void main(String[] args) throws Exception {
// 一直打印日志,用于测试Log4j2功能
while (true) {
logAll();
}
}
// 打印各种级别的日志用于测试
public static void logAll() throws Exception {
LOG.trace("trace level log");
LOG.debug("debug level log");
LOG.info("info level log");
LOG.error("error level log");
LOG.fatal("fatal level log");
// 设置休眠时间(单位ms),控制日志打印速度
Thread.sleep(3);
}
}
3.打印日志
运行上面的测试程序,
在控制台打印出如下日志:
ERROR StatusLogger No Log4j 2 configuration file found. Using default configuration (logging only errors to the console), or user programmatically provided configurations. Set system property 'log4j2.debug' to show Log4j 2 internal initialization logging. See https://logging.apache.org/log4j/2.x/manual/configuration.html for instructions on how to configure Log4j 2
11:33:08.438 [main] ERROR org.apache.logging.log4j.Log4j2Test - error level log
11:33:08.440 [main] FATAL org.apache.logging.log4j.Log4j2Test - fatal level log
可以看到ERROR报错了,没有找到Log4j2的配置文件,
使用了默认配置,只打印error级别日志到console控制台,
然后控制台输出了error和fatal两个级别的日志信息。
4.日志级别
Log4j2共有8种日志级别,
按照优先级从小到大排序:
ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF
边栏推荐
- 21天学习挑战赛--补种胡杨求最大连续胡杨数量
- 强化学习_03_表格方法实践(CartPole-v0 And MontoCarlo)
- 强化学习_12_Datawhale深度确定性策略梯度
- vscode + ccls环境配置
- unity箭头控制物体移动
- ArgumentException: GetComponent requires that the requested component ‘GameObject‘ derives from Mono
- 个人实现的可任意折叠QToolBox——AdvancedToolBox
- UnityShader入门精要-unity shader基础
- Unity plug-in DOTween User Guide 2 (Brief explanation of Bezier curves)
- pthread编程重要知识点
猜你喜欢
随机推荐
Unity plug-in DOTween User Guide 2 (Brief explanation of Bezier curves)
废酸回收再利用
网页安全证书错误但无法安装证书的解决办法
新手使用 go channel 需要注意的问题
二叉树 6/21 91-95
Myunity框架笔记3
socket实现进程间通信
如何在VMlogin中设置YiLu代理?
OSPF的dr和bdr
OpenGL学习笔记(LearnOpenGL)-第三部分 绘制矩形
Talking about 3 common shadow rendering techniques in games (1): plane shadow
Unity资源热更新--资源管理、Addressable
vscode + ccls环境配置
Analysis of minix_super_block.s_nzones of mkfs.minix.c
H3C文档NAT专题
Easy to master Unity of eight prior to rendering
请亲们关注下我,谢谢了。
制作一个启动软盘并用bochs模拟器启动
UnityShader入门精要-立方体纹理、反射、折射、菲涅尔反射
Talking about 3 Common Shadow Rendering Techniques in Games (3): Shadow Mapping