log4j/log4j2/logback混用问题

author author     2023-03-15     426

关键词:

参考技术A 如果不了解标题提到的几个日志框架,建议了解一下 log4j/log4j2/logback简单使用说明 ,本节中pom依赖前面的内容;

log4jdemo
log4j2demo
logbackdemo
logdemo

java项目一般会选择一种日志框架,但很难保证当前项目依赖的三方组件会选用和当前项目相同的日志框架,比如当前项目使用了logback,项目依赖了ES,ES使用了log4j2日志框架,这时日志打印可能会有问题,甚至不打印日志,影响问题排查......

此时:
1.不在此项目(project)中指定日志属性配置文件,原项目(project A,project B,project C)中各自使用原生日志框架类打印日志,则用各自的日志配置文件打印日志。
2.在此项目中指定日志属性配置文件,原项目中的类则忽略原项目中的日志属性配置文件,用此项目中的日志属性配置文件。

原项目(project A,project B,project C)都使用slf4j(见“升级log4j至slf4j”和“升级log4j2至slf4j”),此项目(project)中重新定义日志属性配置文件,原项目中的类则使用log4j打印日志,启动时,控制台有告警,可以获知详细信息,如:

得知最终使用了log4j日志框架;
pom.xml

排除掉子模块中slf4j依赖的pom

运行结果,全部使用了logback配置:

或者

如果project A使用了log4j,没有使用slf4j,则需要排除log4j并增加log4j-over-slf4j依赖,用来桥接日志打印

如果project B使用了log4j2,没有使用slf4j,则需要排除log4j2并增加log4j-to-slf4j依赖,用来桥接日志打印

运行结果,全部使用了logback配置:

引入依赖

Main.java

log4j.properties

pom.xml

Main.java

log4j2.properties

将 log4j 1.2.x 迁移到 log4j 2.16.0

】将log4j1.2.x迁移到log4j2.16.0【英文标题】:Migratinglog4j1.2.xtolog4j2.16.0【发布时间】:2022-01-2002:49:47【问题描述】:使用PropertyConfigurator.configure方法加载所有位于系统特定位置的log4j文件。staticPropertyConfigurator.configure("C:/users/log4j.pro... 查看详情

如何替换/etc/elasticsearch/logging.yml

参考技术Aelasticsearch2.4日志为logging.yml设置成size存储由于elasticsearch5.XX使用log4j2.property教程很多,很方便设置成按size存储 查看详情

如何修复 Gradle 项目中的 Log4J 漏洞

】如何修复Gradle项目中的Log4J漏洞【英文标题】:HowtofixLog4JVulnerabilityinGradleProject【发布时间】:2022-01-1816:47:50【问题描述】:我可以在我的项目的Gradle依赖树中看到org.apache.logging.log4j:log4j-core:2.14.0库。我们还没有从外部添加log4j... 查看详情

causedby:actionclass[java.action]notfound-action-file:/c:/program

...efoundforlogger(com.opensymphony.xwork2.util.fs.DefaultFileManagerFactory).log4j:WARNPleaseinitializethelog4jsystemproperly.log4j:WARNSeehttp://logging.apache.org/log4j/1.2/faq.html#noconfigformoreinfo.2014-9-171:15:11org.apache.catalina.core.StandardContextfilterStart严重:Exceptionstartingfilters... 查看详情

KafkaSpout 为 log4j 抛出 NoClassDefFoundError

】KafkaSpout为log4j抛出NoClassDefFoundError【英文标题】:KafkaSpoutthrowsNoClassDefFoundErrorforlog4j【发布时间】:2016-01-0808:21:47【问题描述】:由于某种原因,当我尝试在Storm集群上运行拓扑时出现以下错误:java.lang.NoClassDefFoundError:Couldnotini... 查看详情

Jetty 中的 log4j 设置

】Jetty中的log4j设置【英文标题】:log4jsettingsinJetty【发布时间】:2016-06-0514:47:12【问题描述】:我有一个使用log4j记录消息的javawebapp。这个webapp是我编写的jar文件的包装器。当我通过Eclipse的内置Jetty运行我的webapp时,我的JAR日志... 查看详情

日志框架logback相对于log4j的优势

日志框架logback相对于log4j的优势。更快的实现 Logback的内核重写了,在一些关键执行路径上性能提升10倍以上。而且logback不仅性能提升了,初始化内存加载也更小了。 非常充分的测试 Logback经过了几年,数不清小时的... 查看详情

log4j 日志记录层次结构顺序

】log4j日志记录层次结构顺序【英文标题】:log4jlogginghierarchyorder【发布时间】:2011-12-0610:47:01【问题描述】:log4j日志的层次结构是什么?DEBUGINFOWARNERRORFATAL哪一个提供了最高的日志记录,有助于解决问题?任何人都可以提供从... 查看详情

Log4J 未正确归档日志

】Log4J未正确归档日志【英文标题】:Log4Jisnotarchivinglogsproperly【发布时间】:2014-11-0415:12:47【问题描述】:我正在尝试为我的应用程序配置log4j。我希望它每天滚动,这意味着我希望它创建一个带有日志的新文本文件并存档旧文... 查看详情

是否有技术原因更喜欢使用 logback 而不是 log4j?

】是否有技术原因更喜欢使用logback而不是log4j?【英文标题】:Aretheretechnicalreasonstopreferusinglogbackinsteadoflog4j?【发布时间】:2010-09-1518:47:51【问题描述】:新项目是否应该使用logback而不是log4j作为日志框架?或者换个说法:\'logba... 查看详情

从 log4j 1.2.17 迁移后的 log4j 2.2 问题

】从log4j1.2.17迁移后的log4j2.2问题【英文标题】:log4j2.2issuesaftermigratingfromlog4j1.2.17【发布时间】:2015-04-0211:44:48【问题描述】:我已经从log4j1.2.17迁移到log4j2.2。我遇到了以下问题:我的AsyncLogger就像一个同步的一样工作。这是我... 查看详情

如何配置 jetty 7 以使用 syslog 或 log4j

】如何配置jetty7以使用syslog或log4j【英文标题】:howtoconfigurejetty7tousesyslogorlog4j【发布时间】:2010-05-2112:47:12【问题描述】:我正在寻找一种将所有jetty7日志记录到syslog的方法。我目前的配置将所有内容转储到JETTY_HOME/logs/..经过... 查看详情

细说log4j之概述

log4j官网:https://logging.apache.org/ 概述log4j目前存在2个版本:log4j1.x和log4j2.x,目前官方主推2.x版本(log4j1.x已于2015.08.05宣布停止开发,官方建议将1.x升级为2.x版本)。log4j1.x最后一个版本是1.2.17,详见:https://logging.apache.org/log4... 查看详情

Log4j 2.16 中的 PropertyConfigurator.configure() (log4j 1.2.4) 替换

】Log4j2.16中的PropertyConfigurator.configure()(log4j1.2.4)替换【英文标题】:PropertyConfigurator.configure()(log4j1.2.4)replacementinlog4j2.16【发布时间】:2022-01-2006:48:02【问题描述】:我们在具有log4j1.x版本的java项目中使用属性配置。客户要求从1.x... 查看详情

log4j 2 迁移桥 log4j-1.2-api.jar 缺少类

】log4j2迁移桥log4j-1.2-api.jar缺少类【英文标题】:log4j2migrationbridgelog4j-1.2-api.jarmissingclasses【发布时间】:2016-05-2022:34:38【问题描述】:我正在将我们应用程序中的log4j版本从log4j1.2.16升级到log4j2.5。我们有很多依赖项,所以我使用... 查看详情

logback基本入门(代码片段)

1.logback的定义  Logback是由log4j创始人设计的另一个开源日志组件,官方网站:http://logback.qos.ch。它当前分为下面下个模块:  logback-core:其它两个模块的基础模块  logback-classic:它是log4j的一个改良版本,同时它完整实现了... 查看详情

什么相当于 log4j 2 中的 log4j 1 `log4j.appender.SYSLOG.Header=true`?

】什么相当于log4j2中的log4j1`log4j.appender.SYSLOG.Header=true`?【英文标题】:Whatisequivalenttolog4j1`log4j.appender.SYSLOG.Header=true`inlog4j2?【发布时间】:2015-08-0407:29:58【问题描述】:我正在将log4j.properties迁移到log4j2.xml。前者中的Syslogappender... 查看详情

log4j 2.16.0 中 log4j 1.2.17 中 LogManager.setRepositorySelector() 的替代方案

】log4j2.16.0中log4j1.2.17中LogManager.setRepositorySelector()的替代方案【英文标题】:AlternativeforLogManager.setRepositorySelector()fromlog4j1.2.17inlog4j2.16.0【发布时间】:2022-01-1923:45:10【问题描述】:我正在将应用程序从log4j1.2.17转换为2.16.0,看起... 查看详情