首页 > 编程语言 >一文搞懂java日志框架

一文搞懂java日志框架

时间:2023-02-27 10:24:58浏览次数:50  
标签:java log4j2 spring boot log4j 搞懂 logback 日志

发展历史

总结

标准接口 实现产品
JCL log4j、jul
Slf4j logback
log4j-api(log4j2) log4j-core(log4j2)

发展

  1. System.out
    最早最简单的打印方式,不可配置日志级别
  2. log4j
    Log4j是apache开源项目,作者Ceki Gulcu,最早的日志框架
  3. jul(java util logging)
    apache建议sun把log4j引入到jdk中,sun没有引入,但是仿照log4j,推出了jul
  4. JCL(Jakarta Commons Logging)
    apache针对jul,搞了一套日志标准jcl一统江湖,log4j和jul都相当于是jcl的日志产品
  5. Slf4j(simple Logging Facade for java)
    JCL问题太多,ceki离开apache后,搞了一个新的日志接口,也能叫日志门面,Slf4j优于JCL
    但是Slf4j仅仅是接口,于是ceki又推出各种桥接包,统一了log4j、jul,以及JCL
  6. logback
    ceki推出了Slf4j的直接实现的日志产品logback
  7. log4j2
    apache推出log4j2,严重怀疑参考了ceki的logback
    log4j2也高了分离式设计,分化成log4j-api和log4j-core,log4j-api是日志接口,log4j-core是日志产品,并且也搞出来各种桥接包

spring boot用什么

  • 由spring-boot-starter-logging.jar pom.xml可见,spring boot使用的是slf4j+logback的组合
  • 而且引入了各种桥接包,如果替换成其他日志框架,也可以自动适配
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starters</artifactId>
		<version>1.5.13.RELEASE</version>
	</parent>
	<artifactId>spring-boot-starter-logging</artifactId>
	<name>Spring Boot Logging Starter</name>
	<description>Starter for logging using Logback. Default logging starter</description>
	<url>http://projects.spring.io/spring-boot/</url>
	<organization>
		<name>Pivotal Software, Inc.</name>
		<url>http://www.spring.io</url>
	</organization>
	<properties>
		<main.basedir>${basedir}/../..</main.basedir>
	</properties>
	<dependencies>
		<dependency>
			<groupId>ch.qos.logback</groupId>
			<artifactId>logback-classic</artifactId>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>jcl-over-slf4j</artifactId>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>jul-to-slf4j</artifactId>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>log4j-over-slf4j</artifactId>
		</dependency>
	</dependencies>
</project>

使用

logback

  • 简单的配置可以配置在application.properties或application.yml中
  • 通常使用logback.xml,logback自动会在classpath的根目录下搜索配置文件
  • 自定义文件名,需要配置在spring boot的配置文件中
logging:
 config: classpath:logback-spring.xml

log4j2

  • 移除logback的依赖,添加log4j2的依赖
  • 添加log4j2.xml配置文件(和application.properties平级)

参考

spring boot
log4j2-bug


版权声明:本文所有权归作者! 商业用途转载请联系作者授权! 非商业用途转载,请标明本文链接及出处!
赞成、反驳、不解的小伙伴,欢迎一起交流!

标签:java,log4j2,spring,boot,log4j,搞懂,logback,日志
From: https://www.cnblogs.com/mawencai/p/17151642.html

相关文章

  • java基础02
    强制类型转换强制转换(类型)变量名  高-----低自动转换   低-----高inti=128byteb=(byte)i//-128内存会出现溢出问题(高到低转换)doublec=i//128.0(自动......
  • java基础03
    变量类变量static PublicclassDemo08{staticdoublesalary=2500;//static从属于Demo08这个类 方便调用//属性:变量//实例变量从属于对象;如果不自动初始化 ,这......
  • 南京Java培训班哪家好,什么样的可选
    南京Java培训班哪家好?我们应该明确自己的学习目的,是为了什么而选择Java培训班学习,优势又是什么,能给我们带来什么帮助,当清楚这些之后,我们就能很好的在众多的南京Java培训中......
  • 武汉Java培训班哪家好?大家都要怎么挑选
    在武汉参加Java培训学习的年轻人还是很多的,但大家对于武汉Java培训并没有过多的了解,至于哪家比较好就更不知道了,不过也不用担心,这个问题是每一位想要参加培训学员比考虑的,......
  • JAVA读取Excel文件
    工具类 /***同步无模型读取(默认读取sheet0,从第2行开始读)**@paramfilePath文件路径*@returnList<Map<Integer,String>>*/......
  • java 读 excel 表格(xlsx) 用到的 poi-5.2.3 相关的 jar
    今天第一次用java读取xlsx表格中的数据,到网上下载了一个poi5.2.3(发布日期:2022-9-16),这是目前的最新版本。下载后,解压缩。看了一下文件夹中有很多的jar,目前只需要......
  • Spring Boot 实现日志链路追踪,无需引入组件,让日志定位更方便!
    来源:blog.csdn.net/qq_35387940/article/details/125062368前言从文章标题就知道,这篇文章是介绍些什么。这是我一位朋友的问题反馈:好像是的,确实这种现象是普遍存在的......
  • Java中的Unsafe类
    Java中的Unsafe类Unsafe类时sun,misc包下的一个类,主要用于执行一些Native方法,同时它赋予了Java直接操作内存的能力,但是直接操作内存的能力同时也破坏了Java的安全性,可......
  • 读Java性能权威指南(第2版)笔记03_ Java SE API技巧中
    1. 缓冲I/O1.1. 对于文件和套接字,压缩和字符串编码的操作,必须适当地对I/O进行缓冲1.1.1. 两个流操作的是字节块(来自缓冲流)而不是一系列的单字节(来自ObjectOutputStre......
  • Java基础——(综合练习)普通加密
    packagecom.zhao.test;publicclassTest18{/*需求:​某系统的数字密码(大于0),比如1983,采用加密方式进行传输。规则如下:......