java日志之log4j、log4j2、slf4j

2023-05-16

本文从整体视角分析,重在帮助初学者了解log4j、log4j2之间的关系。以及与slf4j整合时使用的中间jar包:slf4j-log4j12、log4j-slf4j-impl。

  • 1.Log4j

log4j核心包只有一个,即log4j.jar。上图是log4j最后的版本,版本号是1.2

包名:org.apache.log4j

配置文件是一个.properties的文件

调用方式:

import org.apache.log4j.Logger;

Logger logger= Logger.getLogger(Test.class);
logger.info("aaa");

接着就是log4j2横空出世了

2.log4j2

log4j2的核心包有两个,分别是log4j-api和log4j-core。

包名:org.apache.logging.log4j

配置文件采用的是.xml

调用方式:

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

private static Logger logger= LogManager.getLogger(Test.class.getName());
logger.info("aaa");

 

3.与slf4j整合

3.1 Log4j与slf4j整合

整合所需jar包:

<dependency>
	<groupId>org.slf4j</groupId>
	<artifactId>slf4j-api</artifactId>
	<version>1.7.10</version>
</dependency>

<dependency>
	<groupId>org.slf4j</groupId>
	<artifactId>slf4j-log4j12</artifactId>
	<version>1.7.0</version>
</dependency>
<dependency>
	<groupId>log4j</groupId>
	<artifactId>log4j</artifactId>
	<version>1.2.17</version>
</dependency>

调用方式:

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

private static Logger logger = LoggerFactory.getLogger(Test.class);

logger.info("aaa");

补充:slf4j-log4j12.jar名字中的log4j指的是log4j,12应该是与log4j的终版1.2版本有关系(本人猜测)

3.2 Log4j2与slf4j整合

整合所需jar包:

<dependency>
	<groupId>org.apache.logging.log4j</groupId>
	<artifactId>log4j-api</artifactId>
	<version>2.2</version>
</dependency>
<dependency>
	<groupId>org.apache.logging.log4j</groupId>
	<artifactId>log4j-core</artifactId>
	<version>2.2</version>
</dependency>

<dependency>
	<groupId>org.apache.logging.log4j</groupId>
	<artifactId>log4j-slf4j-impl</artifactId>
	<version>2.1</version>
</dependency>

<dependency>
	<groupId>org.slf4j</groupId>
	<artifactId>slf4j-api</artifactId>
	<version>1.7.7</version>
</dependency>
调用方式:同3.1的调用方式
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

private static Logger logger = LoggerFactory.getLogger(Test.class);

logger.info("aaa");

总结:3.1与3.2相比,都是使用slf4j的接口,所以调用方式一样,只是底层用的是不同的log实现

4.jar包说明

与slf4j整合时使用的jar:slf4j-log4j12(log4j)、log4j-slf4j-impl(log4j2)

包名的不同,说明他们由不同的组织维护,不同的组织反映了中间Jar命名的混乱现象(个人猜测)。

5.后记

初次接触,发现这一块的jar包有很多,而且命名也很乱。努力梳理其中的关系,后来发现从jar包的维护者不一来理解这种乱象比较合适。

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java日志之log4j、log4j2、slf4j 的相关文章

随机推荐

  • 视图绑定

    视图的绑定从另一个角度看就是implicit的转换 主要用在两个场合 1 当一个T类型的变量t要装换成A类型时 2 当一个类型T的变量t无法拥有A类型的a方法或变量时 其实视图的绑定是为了更方便的使用隐式装换 如果我们不用视图绑定看看 这个
  • 【Settings随记:二】一级菜单,二级菜单的添加与隐藏,添加辅助功能

    我们可以先从Settings的启动来看 先进入到AndroidManifest xml 找到启动的Activity span class token tag span class token tag span class token pun
  • 新加装的硬盘,装上系统后发现EFI分区没有被创建,还是用旧硬盘的EFI分区

    引发问题 xff1a 如果没有旧硬盘就没法引导系统 xff0c 没法开机 解决办法 xff1a 在新硬盘增加一个EFI分区 目前情况大概就是这个样子 xff1a xff08 本人忘了截图 xff0c 用别人的 xff09 可见 xff0c
  • 信息安全重点知识

    一 信息安全概述 网络空间安全的重要性 xff1a 没有网络安全就没有国家安全信息安全 xff1a 防止数据未授权的访问 xff0c 数据有意和物一的威胁 网络安全是信息安全的子集 信息安全的三要素 xff08 CIA xff09 xff1
  • 线程同步的四种方式

    一 xff0c 什么是线程同步和互斥 同步就是协同步调 xff0c 按预定的先后次序进行运行 如 xff1a 你说完 xff0c 我再说 这里的同步千万不要理解成那个同时进行 xff0c 应是指协同 协助 互相配合 线程同步是指多线程通过特
  • 海天注塑机KEBA系统数据采集

    本文章只针对海天注塑机的KEBA系统 xff0c 因为其他注塑机厂家也用KEBA系统 xff0c 他们的采集方式可能不太一样 xff0c 所以后续有时间我将写其他文章来解释 xff08 默认你已经向海天采购了OPC组件 xff09 一 采集
  • Axure基础:事件和动态面板

    这一篇文章我们主要是将如何做系统左侧的导航 xff0c 并且告诉大家如何动态的切换各个页面 一 事件 1 事件基础 事件的核心就是什么时候做什么事 其中的什么时候可以是如下 xff1a 能做的事情如下 xff1a 2 远程监控云中的事件 监
  • 设备联网调试三板斧

    在实际的工业互联网项目中 xff0c 设备联网所占的比重越来越大 有的一期项目为了简单快速上线 xff0c 让客户直观体会到工业互联网的效果 xff0c 直接会把设备联网放在一期项目的重点 那么在做此类项目时 xff0c 设备联网调试就显得
  • 光立方完全解析

    转载请注明出处 xff1a http blog csdn net ruoyunliufeng article details 37903899 这个4 4 4的三色光立方是我在初学单片机的时候做的一个小项目 很适合给初学单片机和C语言的同学
  • 远程视频监控之应用篇(mjpg-streamer)

    转载请注明出处 xff1a http blog csdn net ruoyunliufeng article details 38515311 这篇文章将主要结合源码介绍mjpg streamer xff0c 使小伙伴们了解视频监控的实现
  • Matplotlib 入门(三):多图合并

    一 多合一显示 1 subplot方法 xff1a 设置行 列和起始点 plt subplot 2 1 1 分成两行一列 xff0c 起始点为1 2 代码 coding utf 8 34 34 34 Created on Sun Sep 2
  • python毫秒级延时

    一 毫秒延时 近期有一个ms级别延时的需求 xff0c 实际测试了一下 xff0c 环境 xff1a win7 64位 xff0c python2 7 13 结果 xff1a 毫秒级别的延时是能够支持的 xff0c 微妙是不支持的 二 de
  • 数据分析之乳腺癌预测

    零 定义问题 1 1 数据介绍 http archive ics uci edu ml machine learning databases breast cancer wisconsin breast cancer wisconsin n
  • 关于mongodb占用内存过大的问题

    一 现象 最近发现自己服务器内存越来越少 xff0c 查了一下原来是部署的mongodb使用内存在线性增加 不查不知道 xff0c 一查吓一跳 xff0c 竟然占用了3G的内存 二 分析 1 内存增加的原因 mongo为了优化他的读写效率
  • 软件开发生命周期-3-每个阶段的输入输出

    记录下一点自己的心得体会 xff0c 分享给大家 xff0c 有不足之处 xff0c 望指教 第一阶段 xff1a 假想阶段 本阶段是整个软件开发的开始阶段 xff0c 输入可以是为了提高工作效率的某个好的想法或者是公司领导为了帮助管理发出
  • make settings时编译报错:dalvik/dx/bin/Android.bp:24:1: module “dx-doc-stubs“ already defined

    FAILED out soong build ninja cd KaTeX parse error Expected 39 EOF 39 got 39 amp 39 at position 51 soong build 34 34 amp
  • Linux下7z压缩解压软件区别

    本文首发于个人博客 xff0c 文章链接为 xff1a https blog d77 xyz archives 4744f068 html 最近需要在 Ubuntu下用 7z 来压缩点东西 xff0c 发现 Ubuntu 默认没有安装 7z
  • FMC接口说明

    FMC介绍 FMC是英文FPGA Mezzanine Card FPGA 夹层卡 的缩写 xff0c 用于FPGA IO和通讯部件之间的连接 实现FPGA具有重配置IO能力的引脚与其他的FMC子卡IO连接 其信号完整性可以保证高达几G bp
  • win10开机为“其他用户”无法登录,及系统登录账户没有管理员权限无法安装软件解决方案

    win10开机为 其他用户 无法登录 xff0c 及系统登录账户没有管理员权限无法安装软件解决方案 开机为 其他用户 无法进入系统无须重装系统 解决方案注意不要漏了管理员权限 xff0c 笔者在给系统加上本地账户之后忘记加管理员权限了 xf
  • java日志之log4j、log4j2、slf4j

    本文从整体视角分析 xff0c 重在帮助初学者了解log4j log4j2之间的关系 以及与slf4j整合时使用的中间jar包 xff1a slf4j log4j12 log4j slf4j impl 1 Log4j log4j核心包只有一