log4j升级为log4j2,log4j2+slf4j+commons-logging+Jboss-logging(SSH项目)

Jboss 7配置日志 Jboss 7日志可以在XML配置文件和日志管理属性文件内配置。默认日志配置在configuration目录的logging.properties文件内。 通常情况下,对于大多数安装,logging.properties内的默认值已经足够了。 阅读详情

Java日志 - log4j1升级为log4j2,涉及commons-logging、slf4j、Jboss-logging日志组件(SSH项目)

1 前言

1. 1 问题起因

SSH框架中已集成log4j,采用log4j.preoerties配置文件的方式进行日志记录。因升级至log4j2导致spring相关日志输出、单元测试运行报错等情况。因此梳理了SSH框架中涉及到的日志工具:log4j1、log4j2、commons-logging、slf4j、jboss-logging 之间的关系,以及升级中如何解决出现的问题。

1.2 java各日志工具的解释

首先要对我们见到的日志工具分个类。
一种是负责具体的实现:jdk-logging、log4j1、log4j2、logback、jboss-logging;(可提供API编程,并且完成具体日志输出的)
另一种是仅提供接口:commons-logging、slf4j;(提供API编程的,或桥接其他日志工具进行日志输出的)

各个工具的解释如下:

  • log4j1: 由Apache推出的最早的日志工具;
  • jdk-logging:SUN公司,jdk自带的日志工具(我们不常用这个)
  • commons-logging:也被称为 JCL(Java Common Logging),为了解决各个日志工具的适配问题,不做具体实现JCL,抽象出一个接口层,对每个日志实现都进行适配。Spring的日志输出也是依赖JCL
  • slf4j:(即Simple Logging Facade for Java)是JCL的升级版。同样只是作为接口。
  • logback:为了slf4j定制了一个实现的日志工具。
  • log4j2:log4j2的升级版。
  • jboss-logging:Hibernate集成的日志工具,因此我们在集成其他日志工具的时候要解决jboss-logging转由其他日志工具进行输出。

关于工具较为详细的介绍和关系可参考该篇文章三、四部分:java日志从入门到实战

1.3 java各日志工具及其jar包的关系

上述的日中工具的分类可以让我们可能得到以下几种可能的日志输出的组合:

  1. 直接采用单一具体实现的工具的API编程,并进行日志输出;
    如直接用log4j2,只需要log4j2的jar包:
  • log4j-api;(log4j2定义的API)
  • log4j-core;(log4j2上述API的实现)
  1. 采用了只提供接口的日志工具API进行编程,转由具体实现的日志工具进行输出的;
    如采用slf4j的API编程,使用log4j2进行日志输出;那我们除了slf4j和log4j2的jar包,还需要一个实现这两个工具桥接的包,如下:
  • log4j-api;(log4j2定义的API)
  • log4j-core;(log4j2上述API的实现)
  • slf4j-api;(slf4j定义的API)
  • log4j-slf4j-impl;(slf4j到log4j2的桥梁)
  1. 采用了某个具体实现的日志工具API进行编程,但想用另一个具体实现的日志工具进行输出;
    如采用了log4j进行编程,最后用logback输出,需要jar包如下:
  • log4j;(log4j定义的API和实现)
  • slf4j-api;(slf4j定义的API)
  • log4j-over-slf4j;(log4j1到slf4j的桥梁)
  • logback-core;(logback的实现)
  • logback-classic;(slf4j到logback的桥梁)

请注意区分各个工具之间的关系及jar包的关系,若存在冲突的组合关系是会无法成功集成的。

更详细和完整的工具间集成的jar包关系、集成原理以及冲突的组合说明,可以参考一下这篇文章:
java 日志总结:logging、log4j1、log4j2、logback、commons-logging、slf4j 的关系

2 SSH项目日志升级前日志工具使用情况

目前的SSH框架中涉及到的日志工具包括:log4j1、JCL、slf4j、jboss-logging。

  • log4j1是最终实现日志输出,采用log4j.properties文件配置日志输出规则。并且项目中程序编写直接使用log4j进行编程(引入log4j-1.2.15.jar),实现程序日志的输出。因此升级需要考虑修改程序代码。

配置文件不详细介绍,使用方式如下:

import org.apache.log4j.Logger;

public class SystemAction {
	private final Logger log = LoggerFactory.getLogger(SystemAction.class);
	public void valid() {
		log.info("效验log4j日志输出");
	}
}

但除了程序中直接采用log4j中进行日志输出外,SSH框架中还涉及其他日志工具的依赖,包括了:

  • Spring默认使用的是JCL,JCL会自己去找具体实现的日志工具,如log4j;或者是桥接其他日志接口。项目中通过桥接slf4j(引入jcl-over-slf4j-1.7.5.jar),最后slf4j交由log4j进行具体日志实现,输出日志(引入slf-log4j12-1.7.5.jar)。因此升级需要考虑保留该工具集成方式。
  • Hibernate默认使用了jboss-logging(默认引入jboss-logging-3.1.0.GA.jar),最终交由log4j实现日志输出。因此要考虑log4j配置及实现jar包删除对jboss的影响,是否可以支持log4j2。

3 SSH项目日志升级中的问题解决(log4j升级至log4j2)

此次升级中需要解决程序代码中log4j1代码的替换,日志工具的替换。以及其他未预知到的问题。包括如下:

3.1 log4j2替换log4j1

替换包括:删除原log4j1配置及jar包,新增log4j2配置文件及jar包;因为项目原来直接采用log4j进行编程,因此还需修改对应的代码,具体内容如下:

  • 删除log4j1依赖及配置文件:log4j.properties、log4j-1.2.15.jar
  • 增加log4j2相应的jar包:log4j-api-2.11.0.jar、log4j-core-2.11.0.jar
  • 配置log4j2.xml

更为详细的配置说明可参考:log4j2.xml 配置文件详解

<?xml version="1.0" encoding="UTF-8"?>
<!-- log4j2配置xml -->
<Configuration Status="INFO">
    <Properties>
        <!--自定义一些常量,之后使用${变量名}引用-->
        <Property name="logFilePath">${sys:catalina.home}/projectName_log</Property>
        <Property name="archiveLogFilePath">${logFilePath}/archiveLog</Property>
    </Properties>
    <Appenders>
        <!-- 输出到控制台的日志 -->
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %5p [%t] (%F:%L) - %m%n"/>
        </Console>
        <!-- 输出到每日日志文件 -->
        <RollingFile name="DailyInfoLog" fileName="${logFilePath}/info.log"
                     filePattern="${archiveLogFilePath}/info-%d{yyyy-MM-dd}-%i.log">
            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %5p [%t] (%F:%L) - %msg%n"/>
            <DefaultRolloverStrategy max="20"/>
            <!-- 使用 ThresholdFilter,实现日志分级输出,大前提是Root里的日志级别 -->
            <!-- 匹配高于INFO级的日志都输出,不匹配的拒绝 -->
            <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
            <Policies>
                <TimeBasedTriggeringPolicy/>
                <SizeBasedTriggeringPolicy size="100 MB"/>
            </Policies>
        </RollingFile>

    </Appenders>

    <Loggers>
        <!-- 日志打印级别info以上,控制台与日志文件均输出 -->
        <Root level="INFO">
            <appender-ref ref="Console"/>
            <appender-ref ref="DailyInfoLog"/>
        </Root>
    </Loggers>

</Configuration>
  • 修改日志输出代码:
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class SystemAction {
	private final Logger log = LogManager.getLogger(SystemAction.class);
	public void valid() {
		log.info("效验log4j2日志输出");
	}
}

已集成slf4j建议改成使用slf4j的API。

3.2 JCL、slf4j、log4j2的集成 (解决spring日志的输出问题)

原项目中已经集成JCL与slf4j,因此相关的jar包保留不变。但要增加log4j2与slf4j的桥梁,否则找不到对应具体的实现的日志工具,spring相关的日志信息不会被log4j2输出。

  • 保留 jcl-over-slf4j-1.7.5.jar,实现JCL与slf4j的集成。
  • 保留 slf4j相关的jar包:slf4j-api-1.7.5.jar
  • 删除掉原本slf4j与log4j1的桥梁包:slf4j12-1.7.5.jar,不删除则会和其他桥梁冲突,slf4j不知道要将日志实现交给谁来处理。
  • 增加 log4j-slf4j-impl-2.11.0.jar,实现slf4j与log4j2的集成,将日志具体实现交给log4j2

已经集成了slf4j,建议采用slf4j提供的API进行编程,而不是采取使用log4j2的API。采用slf4j,后续具体实现日志的工具有进行升级更换,如换成logback,则不需要再改程序代码,只需要修改相应桥梁的jar包即可,采用slf4j编写如下:

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

public class SystemAction {
	private final Logger log = LoggerFactory.getLogger(SystemAction.class);
	public void valid() {
		log.info("效验log4j2日志输出");
	}
}

3.3 jboss-logging、log4j2的集成

项目原jboss-logging的jar包版本为:boss-logging-3.1.0.GA.jar,该版本没有提供log4j2的支持,因此在升级log4j2升级后,将有如下几个问题:

  • 若保留了log4j1的配置文件(log4j.properties),jboss-logging会自己找到该配置文件,根据配置输出日志。(从运行结果上看是如此,未找到相关资料验证)
  • 若删除log4j.properties后,Jenkins单元测试结果异常,大量单元测试会抛出以下异常:
Caused by: java.lang.NoSuchFieldError: TRACE
	at org.jboss.logging.Log4jLogger.translate(Log4jLogger.java:64) ~[jboss-logging-3.1.0.GA.jar:3.1.0.GA]
	at org.jboss.logging.Log4jLogger.isEnabled(Log4jLogger.java:39) ~[jboss-logging-3.1.0.GA.jar:3.1.0.GA]
	at org.jboss.logging.Logger.isTraceEnabled(Logger.java:98) ~[jboss-logging-3.1.0.GA.jar:3.1.0.GA]
	...

以上两个问题的解决,一是需要删除掉原本log4j1的配置文件,同时也要升级jboss-logging jar包为:jboss-logging-3.3.0.FIANL.jar。该版本支持log4j2,会找log4j2.xml文件进行日志输出。这样就解决了通过log4j1输出日志和大量单元测试的异常。

jboss-logging与其他日志工具的集成资料少,只通过改造尝试的结果来推断问题原因及解决办法,未作深入研究

3.4 其他问题

  • sys:catalina.home配置无效:运行单元测试与项目在Tomcat中启动不同,单元测试运行找不到catalina.home路径,因此日志文件无法输出到配置中的路径,导致如下异常:
ERROR Unable to create file ${sys:catalina.home}/projectName_log/info.log java.io.IOException: 文件名、目录名或卷标语法不正确。
	at java.io.WinNTFileSystem.canonicalize0(Native Method)
	at java.io.WinNTFileSystem.canonicalize(WinNTFileSystem.java:428)
	at java.io.File.getCanonicalPath(File.java:618)
	...

解决办法则是添加jvm参数,指定catalina.home:

-Dcatalina.home=D:/JunitLog/${proj_name}

Jenkins 构建自动执行单元测试(使用的是Ant编译的),可在配置文件中的中增加一个jvm参数标签,指定catalina.home ,如下:

<!-- proj_name是其他地方定义的项目名 -->
<property name="jvm_arg_catalinaHome" value="-Dcatalina.home=D:/JunitLog/${proj_name}" description="jvm参数设置catalina.home输出日志" />
<jvmarg value="${jvm_arg_catalinaHome}"/>
log4j2升级为logback,logback+slf4jcommons-logging+Jboss-logging(SSH项目) Java日志 - log4j2升级为logback,涉及commons-logging、slf4j、Jboss-logging日志组件(SSH项目) 1 前言 SSH框架中已集成log4j2,因为要通过kafka接入elk,因为接入demo采用的是logback作为日志组件,所以需要将日志组件改为logback,由logback生产日志发送给kafka,接入到elk。因为SSH框架老旧,改造中又涉及到的日志工具:lagback、log4j2、commons-logging、slf4j、jboss-loggi 阅读详情

相关推荐

jboss-logging日志实现

jboss-logging是一款类似于slf4j的日志框架,主要用于日志代理,内部采用log4j、log4j2、logback、jdk-logging等框架实现 核心在于LoggerProviders package org.jboss.logging; import java.security.AccessController; import java.security.Privi...

蛐蛐的博客 5566

SpringBoot 日志系列:(一)日志类型

日志类型及使用方式

360°顺滑 2305

JBoss Logging组件深入解析与实战指南

JBoss企业级应用服务器(JBoss EAP)是一款经过验证的、用于生产环境的开源Java EE应用服务器。它是Red Hat公司的产品,广泛应用于构建、部署和运行Java应用程序。JBoss EAP不仅支持标准Java EE规范,还提供了额外的企业级特性,例如集群支持、服务网格集成、微服务架构和云部署优化。JBoss Logging是JBoss企业级应用服务器中的一个核心组件,用于处理应用中的日志记录。它构建于Java的日志框架之上,如Log4j、SLF4J等,提供了统一的日志记录接口。

weixin_32661831的博客 1234

SpringBoot日志框架的选择及使用原理

1 日志框架介绍 对于我们日常开发日志是经常使用的,当然以前的我们可能还傻傻的各种System.out.println(&amp;quot;重要数据&amp;quot;)在控制台输出各种重要数据呢,投入生产的时候再注释掉。到现在为止呢,已经有很多日志可供选择了,而市面上常见的日志框架有很多,比如:JCL、SLF4J、Jboss-logging、jUL、log4j、log4j2、logback等等,我们该如何选择呢? 市面上的日志框架...

1万+

jboss-logging-3.3.2.Final-API文档-中文版.zip

赠送jar包:jboss-logging-3.3.2.Final.jar; 赠送原API文档:jboss-logging-3.3.2.Final-javadoc.jar; 赠送源代码:jboss-logging-3.3.2.Final-sources.jar; 赠送Maven依赖信息文件:jboss-logging-3.3.2.Final.pom; 包含翻译后的API文档:jboss-logging-3.3.2.Final-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.jboss.logging:jboss-logging:3.3.2.Final; 标签:jboss、logging、jar包、java、API文档、中文版; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

机器学习系列(3)_逻辑回归应用之Kaggle泰坦尼克之灾

f作者: 寒小阳 &&龙心尘 时间:2015年10月。 出处: 声明:版权所有,转载请注明出处,谢谢。手把手机器学习之逻辑回归应用——Kaggle泰坦尼克之灾1.引言先说一句,年末双十一什么的一来,真是非(mang)常(cheng)欢(gou)乐(le)!然后push自己抽出时间来写这篇blog的原因也非常简单: 写完前两篇逻辑回归的介绍和各个角度理解之后,小伙伴们纷纷表示『好像很高级的样纸,

寒小阳 43万+

Spring Boot 日志整合

Spring Boot日志整合与应用摘要 Spring Boot统一采用SLF4J作为日志门面,Logback作为默认实现,通过以下方式实现多日志框架整合: 统一抽象层:使用SLF4J作为统一接口,通过适配器(如jcl-over-slf4j)桥接commons-logging等第三方日志框架 依赖管理: 排除原日志框架依赖 添加适配器中间包 引入SLF4J具体实现 配置方式: 通过application.properties设置日志路径/格式 支持自定义配置(logback-spring.xml等)覆盖默认

py_1990_04_20的博客 567

手把手教你搭建《黑色沙漠》单机版:从下载到联机的完整指南(含GM工具使用)

本文提供《黑色沙漠》单机版从下载安装到GM工具使用及局域网联机的完整教程。详细解析不同版本选择、系统配置要求、常见问题解决,并分享GM工具高级命令和局域网联机设置技巧,帮助玩家轻松搭建个性化游戏环境。

weixin_28738165的博客 468

更新4J:引领未来Java应用更新的革命

在软件开发领域,保持应用程序的最新状态至关重要。为此,我们向您推荐一个强大且灵活的开源库——Update4j。这是一个专为Java 9及以上版本设计的自动更新和启动器库,让您的应用程序能够与云存储服务无缝对接,实现一键更新。 ## 项目简介 Update4j不仅是一个框架,更是一个可以完全定制化的库。它允许您设计自己的更新环境和生命周期,或者直接使用其内置的默认启动配置。这个库的强大之处在于,...

gitblog_00042的博客 693

【ADCU详解】PMIC电源管理集成电路详解

自动驾驶域控制器(ADCU)中的电源管理集成电路(PMIC)是高度集成的关键部件,负责为计算核心、传感器等提供高效稳定的多路电源。其核心特点包括:符合车规AEC-Q100标准、支持功能安全ASIL等级、精确的时序控制及强抗干扰能力。PMIC由开关稳压器、LDO、时序控制器、监控保护电路等模块组成,通过分层电源树框架实现电能分配。设计需考虑效率、功率密度、噪声性能等关键维度,底层基于Buck转换器和LDO原理工作。使用中需满足严苛的车规环境要求,并通过静态/动态测试及故障注入测试进行验证,确保系统可靠性和安全

qq_40844444的博客 841

DC/DC开关电源学习笔记(十五)四开关Buck-Boost-FSBB升降压电路拓扑与工作原理

在DCDC领域,最为常见的是buck拓扑,其次是boost拓扑,而buck-boost的关注度相对较低。但是在电池供电场景日益普及的现在,升降压的需求在不断上升,现在更加关注buck-boost这个拓扑。而在所有buck-boost拓扑中,四开关buck-boost最受欢迎。四开关buck-boost的拓扑很简单,如下图。

小幽余生不加糖 6006

Slf4j与Jboss-Logging整合

Slf4j与Jboss-Logging整合使用包(必须) slf4j-jboss-logging-1.0.2.GA.jar http://repository.jboss.org/maven2/org/jboss/slf4j/slf4j-jboss-logging/1.0.2.GA/ 与slf4j一起放到 jboss的default下的lib下更新:(可不用更新) lib下的jbo...

DT1 893

微信小程序 - 详细解决map地图上使用自定义图标图片或自定义样式进行markers标记点,手机真机运行时安卓系统、苹果ios系统会出现不显示标记点的问题(大概率安卓正常显示标记点,但苹果就加载失败)

微信小程序,map,地图组件,安卓android,苹果ios,真机调试,marker,标记点,在地图上标记,突然就不显示白屏了没动代码,自定义标记点icon,label动态数字,小程序地图markers标记点显示不出来,微信小程序map组件,地图加载后marker标记点ios设备不显示,android正常显示,添加多个标记点。安卓能正常显示标记点图标,IOS设备不显示标记点图标,map地图白屏不显示标记,图标真机调试不显示,自定义图标,报错,页面白屏,不报错也不显示,无法加载,图片展示不出来,iconPat

✅ 精选推荐文章 5956

java常用日志框架日志门面及实现 SLF4J 、Jboss-logging 、JCL、Log4j、Logback、Log4j2、JUL,springboot集成 log4j、log4j2

一、java常用日志框架 1.日志门面(日志接口) ​ 日志门面来解决系统与日志实现框架的耦合性。不是一个真正的日志实现,而是一个抽象层( abstraction layer),它允许你在后台使用任意一个日志实现。 ​ 在项目开发中,记录日志时不应该直接调用日志实现层的方法,而应该调用日志门面(日志抽象层)的方法。 SLF4J(Simple Logging Facade for Java) ​ 简单日志门面(Simple Logging Facade For Java)

多云666 1951

扩散模型与强化学习(13):In-Context Reward Hacking现象与解决方案

奖励作弊(Reward Hacking)指智能体通过钻规则漏洞而非真正完成任务来最大化奖励信号。以论文编辑实验为例,研究提出“上下文奖励作弊”(ICRH)概念,即模型利用共享上下文钻空子,如盲目添加“正确!”或输出无关内容。实验发现,模型规模扩大可能加剧ICRH,且提示词优化难以根治。与传统奖励作弊不同,ICRH发生在部署阶段,由通用性驱动。应对建议包括多轮测试、多样化反馈及异常场景模拟,但尚无完美解决方案。

沉迷单车的追风少年 1319

【从零开始入门unity游戏开发之——C#篇01】理论开篇,理解什么是编程

理论开篇,理解什么是编程

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 3112

Jboss eap 6.4 logging jar包冲突

jboss eap 6.4 经验总结

远望的天空的专栏 3327

12、信号采样与Z变换的全面解析

本文全面解析了信号采样和Z变换的核心概念与应用。内容涵盖采样基础、采样频率与奈奎斯特率的关系、离散时间处理模拟信号的方法、采样率转换技术,以及Z变换的定义、性质、常见变换对和逆变换计算。通过实例分析和流程图展示,帮助读者深入理解数字信号处理的关键步骤,为相关领域的学习与应用打下坚实基础。

Jerry的专栏 118

log4j升级为log4j2(不需要改动代码)

公司的项目决定升级log4j,因为log4j2有一个自动删除日志的功能,这样可以减轻运维的一些工作,而且在多线程环境下,log4j2的异步日志系统比log4j和logback提高了十倍的性能(吞吐量和延迟率),官方原文如下: Log4j 2 contains next-generation Asynchronous Loggers based on the LMAX Disruptor li

zqg4919的博客 7592

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

log4j升级log4j2

1、单独使用log4j 如果在我们系统中单独使用log4j的话,我们只需要引入log4j的核心包就可以了,我这里用的是:log4j-1.2.17.jar, <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> ...

aidixi8066的博客 853

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

日志的两种解决方案(log4j+commons-logging & logback + slf4j)

在项目中我们经常会使用日志来记录系统的运行状况、分析用户的使用情况和操作等等内容。 以下有两种日志的解决方案: 一、Log4J + commons-Logging 1)引入依赖 <!-- https://mvnrepository.com/artifact/log4j/log4j --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifact...

qq_41874088的博客 547

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Common-logging 与 Log4j的结合使用

一、结合说明在我们的日常开发中,经常需要通过输出一些信息进行程序的调试,如果到处都用system.out.println()则在项目发布之后要逐一删 除,而log4j提供了一种新的调试输出机制以解决输出的问题。log4j的原理是使用一个配置文件log4j.properties进行管理,在调试的 时候可以把输出级别调低,项目正式发布之后把级别调高,这样以前的一些输出就可以屏蔽了,不用到程序当中再

在水一方 1613

Common-log 和log4j2 配合使用

Usage Using the Commons Logging Bridge is straightforward. Simply add the bridge jar along with the other Log4j 2 jars and the Commons Logging jar, and all logging done using the Commons Logging AP...

aselidy的博客 1739

Log4j漏洞补救 Log4j2 + SLF4j 升级到最新版本

原创:Log4j2 + SLF4j打造日志系统 - 云+社区 - 腾讯云 2019-01-15阅读2.3K0 目录 一:前言 二:添加依赖 2.1:去除直接和间接依赖的log4j1和SLF4j 2.2:添加依赖 三:xml配置 3.1:log4j2.xml常用demo 3.2:demo的优点 3.3:内容详解 3.4:demo变形 3.4.1:同步打印日志 3.4.2:全部异步打印日志 3.4.3:混合模式打印日志 四:其他 4.1:Log日.

zhaofuqiangmycomm的博客 1万+

SpringBoot中的日志

SpringBoot中的日志一、日志框架二、日志框架的问题三、日志配置四、日志框架切换 一、日志框架 常见的日志框架有: 日志抽象层: JCL(ApacheCommons Logging):2014年停更了 SLF4j(Simple Logging Facade for Java) jboss-logging 日志实现层: JUL(java.util.logging) Log4j Log4j2 Logback Spring默认采用JCL(ApacheCommons Logging)框架,Spring

长不大的大灰狼 636
下一篇: log4j2升级为logback,logback+slf4jcommons-logging+Jboss-logging(SSH项目)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值