Java日志组件介绍之二

一、前言

Java日志组件介绍之一 主要介绍了JDK内置日志和Apache的common-logging通用日志接口,今天这篇我们继续了解Java其它一些日志组件。

二、slf4j

  • slf4j即Simple Logging Facade for JAVA ,简单日志门面,类似common-logging,是对不同日志实现的封装。

  • slf4j-simple、logback都是slf4j的具体实现,log4j并不直接实现slf4j,但是有专门的一层桥接slf4j-log4j12来实现slf4j。

  • slf4j-simple、logback、slf4j-log4j12都有一个StaticLoggerBinder类实现了slf4j的LoggerFactoryBinder接口进行绑定。

1、依赖配置

pom.xml

其中slf4j-api是必须要添加,而slf4j-simple、logback-classic、slf4j-log4j12这三个包根据你的需要添加一个依赖即可,如果一起添加会有如下的警告信息,但系统会选择其中一个日志实现类。SLF4J: Actual binding is of type [org.slf4j.impl.SimpleLoggerFactory]

2、日志实现类配置文件

如果要使用log4j,需要添加log4j.properties配置,以下是一个log4j简单控制台输出日志配置

3、代码

注:使用的是slf4j的API。

4、使用的是哪一个具体实现关键源代码分析

通过LoggerFactory跟入代码

初始化方法

查找可能绑定的类文件

STATIC_LOGGER_BINDER_PATH = "org/slf4j/impl/StaticLoggerBinder.class"

就是去加载org/slf4j/impl/StaticLoggerBinder.class这个类,每个slf4j实现都会有这一个类。

三、log4j

Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台或文件等,我们也可以控制每一条日志的输出格式。

Log4j组成

  • loggers:控制日志输出级别以及日志是否要输出

    日志级别:FATAL->ERROR->WARN->INFO->DEBUG 

    ALL:打开所有日志记录、OFF:关闭所有日志。

  • Appenders:设置日志输出到控制台、文件等。

    ConsoleAppender:控制台

    FileAppender:文件

    DailyRollingFileAppender:每天生成一个新文件

    RollingFileAppender:输出到文件,指定文件大小,当超过文件大小时会产生一个新文件并把原来日志文件更名。

    JDBCAppender:将日志信息保存在数据库中。

  • Layout 控制日志信息的输出格式

    HTMLLayout:输出HTML格式

    SimpleLayout:输出简单格式

    PatternLayout:可以自定义格式输出日志。

1、依赖

2、代码

3、配置log4j.properties

4、日志输出格式定义

注:参考PatternLayout这个类的注解。

四、logback

logback是log4j作者写的另外一个日志组件,相比log4j有更好的性能.

logback三个组件

  • logback-core:提供了LogBack的核心功能,是另外两个组件的基础。

  • logback-classic:实现了Slf4j的API,所以当想配合Slf4j使用时,需要引入logback-classic。

  • logback-access:为了集成Servlet环境而准备的,可提供HTTP-access的日志接口。

logback一般都是与slf4j整合使用,logback包中也有一个StaticLoggerBinder来实现与slf4j的绑定。

1、依赖配置

2、logback.xml

如果项目中不配置logback.xml则使用默认配置,只会输出日志到控制台。

3、代码

注:调用slf4j的接口进行日志打印。

4、Springboot配置logback

SpringBoot默认的日志组件就是logback,只要引入spring-boot-start就会把logback依赖引入,如果没logback配置文件,则会直接使用默认的org.springframework.boot.logging.logback.base.xml,默认日志输出级别为INFO

注:Spring引入spring-boot-start还会引入slf4j、log4j(这个不知道为什么加载进来?).

5、异步日志配置

异步日志在输出的时候不会直接输出日志到磁盘,而是将日志存进一个队列里,另外会起一个线程消费队列里的日志将其写入磁盘。

AsyncAppenderBase原理

1、将日志数据放到队列中

2、从队列中取出数据写到磁盘

注:我们项目中其实一直没有配置异步日志。

五、Log4j2

这就是前几天爆出安全漏洞的日志组件,下一篇具体分析。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/156132.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于ASP.NET MVC + Bootstrap的仓库管理系统

基于ASP.NET MVC Bootstrap的仓库管理系统。源码亲测可用,含有简单的说明文档。 适合单仓库,基本的仓库入库管理,出库管理,盘点,报损,移库,库位等管理,有着可视化图表。 系统采用Bo…

Kubernetes - Ingress HTTP 升级 HTTPS 配置解决方案(新版本v1.21+)

之前我们讲解过 Kubernetes - Ingress HTTP 搭建解决方案,并分别提供了旧版本和新版本。如果连 HTTP 都没搞明白的可以先去过一下这两篇 Kubernetes - Ingress HTTP 负载搭建部署解决方案_放羊的牧码的博客-CSDN博客Kubernetes - Ingress HTTP 负载搭建部署解决方案…

17.基干模型Swin-Transformer解读

文章目录 SWin-Transformer解读1.基础介绍关于Shifted Window based Self-Attention相对位置偏置网络整体结构和层级特征欢迎访问个人网络日志🌹🌹知行空间🌹🌹 SWin-Transformer解读 1.基础介绍 Swin-Transformer是2021年03月微软亚洲研究院提交的论文中提出的,比V…

八段流水线运行示意图

流水线如下图所示: 存储周期存取时间恢复时间, 即存取完数据后需要一定量的时间来恢复, 而低位交叉编址的流水线所利用的正是恢复时间 流水线与非流水线对比如下: 经典例题: 2013年408真题

全网最全的RDMA拥塞控制入门基础教程

RDMA-CC(全网最全的RDMA拥塞控制入门基础教程) 文章目录 RDMA-CC(全网最全的RDMA拥塞控制入门基础教程)DMARDMARDMA举例RDMA优势RDMA的硬件实现方法RDMA基本术语FabricCA(Channel Adapter)Verbs 核心概念Me…

UE5 Android下载zip文件并解压缩到指定位置

一、下载是使用市场的免费插件 二、解压缩是使用市场的免费插件 三、Android路径问题 windows平台下使用该插件没有问题,只是在Android平台下,只有使用绝对路径才能进行解压缩,所以如何获得Android下的绝对路径?增加C文件获得And…

众和策略:微软大动作

当地时间周二,美股首要指数全线收涨。但从月度数据来看,美股首要指数录得“三连跌”,10月份,道指跌1.36%,标普500指数跌2.2%,纳指跌2.78%。其间,标普和道指均为2020年3月以来初次呈现三个月连跌…

实时检测并识别视频中的汽车车牌

对于基于摄像头监控的安全系统来说,识别汽车牌照是一项非常重要的任务。我们可以使用一些计算机视觉技术从图像中提取车牌,然后我们可以使用光学字符识别来识别车牌号码。在这里,我将引导您完成此任务的整个过程。 要求: import cv2import numpy as npfrom skimage impor…

Webpack构建慢如蜗牛?提升开发效率的速度优化秘籍!

🎬 江城开朗的豌豆:个人主页 🔥 个人专栏 :《 VUE 》 《 javaScript 》 📝 个人网站 :《 江城开朗的豌豆🫛 》 ⛺️ 生活的理想,就是为了理想的生活 ! 目录 ⭐ 专栏简介 📘 文章引言 一、背…

html获取网络数据,列表展示 一

html获取网络数据&#xff0c;列表展示 js遍历json数组中的json对象 image.png || - 判断数据是否为空&#xff0c;为空就显示 - <!DOCTYPE html> <html><head><meta charset"utf-8"><title>网页列表</title></head><b…

这里有免费搭建高效帮助中心的方法!

在现代的商业环境中&#xff0c;为客户提供高效的帮助中心是至关重要的。HelpLook是一个好用的知识库工具&#xff0c;可以帮助企业免费搭建高效的帮助中心。通过HelpLook&#xff0c;企业可以轻松创建和管理自己的知识库&#xff0c;提供详细的产品使用指南、常见问题解答等内…

nginx 转发数据流文件

1.问题描述 后端服务&#xff0c;从数据库中查询日志&#xff0c;并生成表格文件返回静态文件。当数据量几兆时&#xff0c;返回正常&#xff0c;但是超过几十兆&#xff0c;几百兆&#xff0c;就会超过网关的连接超时时间30秒。 时序图 这里面主要花费时间的地方在&#xff…