In Oracle Appserver, when an EAR file is deployed, which contains common loggin and log4j, it says No Suitable Log Constructor when you try to get a log from log factory.After investigation, it is caused by the parent/child class loader.
1. In OraAS/j2ee/INST_NAME/config/application.xml, we can see the common logging package is imported.
<import-shared-library name="apache.commons.logging"/>
</imported-shared-libraries>
2. That is to say, the common logging is imported by the system/parent class loader when the appserver instance is started.
3. In your webapplication, when you access Log log = LogFactory.getLog(CLASS), then it found the appache common logging has been loaded, so it hand the control to apache commons, apache commons use the auto discovery mechnism to instantialze the LogCatagory in log4j. Unfortunately, commons logging tries to use the system/parent class loader to load log4j. Surely, it fails. Because log4j is under the child/application class loader.
4. The solution is that we remove the commons logging shared library from the application. And put common logging and log4j in the application level.Put the following directive into the orion-application.xml under APPL//META-INF.
<imported-shared-libraries>
<remove-inherited name="apache.commons.logging"/>
</imported-shared-libraries>
分享到:
相关推荐
针对Log4j 2 远程代码执行漏洞,需要用到的升级资源包,...logging-log4j2-log4j-2.15.0-rc2 log4j-1.2-api-2.15.0.jar log4j-api-2.15.0.jar log4j-core-2.15.0.jar log4j-slf4j-impl-2.15.0.jar log4j-web-2.15.0.jar
Apache log4j2零日漏洞,根据 log4j-2.15.0-rc2 版本编译生成log4j-api-2.15.0.jar 1.解压你的jar jar xvf XXX.jar 2. 删除旧版本jar cd ./BOOT-INF/lib rm -rf log4j-api-*.jar 3. 上传新版本log4j-api-2.15.0....
这些接口包括最基本的`org.apache.logging.log4j.Logger`,它是所有日志记录的起点,以及`org.apache.logging.log4j.LogManager`,它负责管理日志配置和日志器实例。API库的主要目标是与实现层解耦,允许开发者在不...
这次我们关注的是其最新版本——logging-log4j2-log4j-2.15.0-rc2。这个版本在安全性和性能上都做了进一步的优化和提升,旨在为开发者提供更高效、更安全的日志处理方案。 1. **Log4j 2概述**: Log4j 2是Log4j的...
总的来说,"logging-log4j2-log4j-2.16.0-rc1.zip"的发布是Log4j团队对"Log4Shell"漏洞的有力回应,通过禁用可能导致安全问题的功能,提高了整体的安全标准。这一事件提醒我们,安全无小事,及时的更新和维护是保障...
APRESS--Logging-in-Java-with-the-JDK-1_4-Logging-API-and-Apache-log4j
log4j-1.2.14.jar log4j-core-2.1.jar log4j-api-2.1.jar commons-logging-1.2.jar commons-logging-1.1.1.jar commons-logging-1.0.4.jar
Apache Log4j 2.3 和 Commons Logging 1.2 是两个在Java Web开发中广泛使用的日志处理库。这两个库对于记录应用程序的运行时信息、调试错误和监控系统状态至关重要。 **Apache Log4j 2.3** Log4j 是 Apache 组织...
Log4j是一个广泛应用于Java环境的日志框架,而当我们谈论`android-logging-log4j-1.0.3.jar`时,它便是Log4j的一个版本,专门针对Android平台进行优化,使得在Android系统中可以方便地将日志信息写入SD卡。...
Maven坐标:org.apache.logging.log4j:log4j-slf4j-impl:2.17.1; 标签:apache、logging、log4j、slf4j、impl、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可...
log4j-2.17升级版本包,包括log4j-1.2-api-2.17.1.jar、log4j-api-2.17.1.jar、log4j-core-2.17.1.jar、log4j-slf4j-impl-2.17.1.jar、log4j-web-2.17.1.jar
最近发布的"logging-log4j2-log4j-2.15.0-rc2.7z"是对Log4j的补丁版本,主要针对已知的安全问题和功能改进进行了更新,旨在提升系统的稳定性和安全性。 这个版本的Log4j,标记为"apache-logging 1.15.0-rc2",意味...
由于commons-logging的存在,你无需直接使用log4j的类,而是通过`java.util.logging.Logger`的接口来实现日志记录,commons-logging会自动找到log4j作为底层实现。 总之,log4j.jar和commons-logging.jar是Java开发...
Maven坐标:org.apache.logging.log4j:log4j-to-slf4j:2.17.1; 标签:apache、slf4j、logging、log4j、jar包、java、中文文档; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容...
《深入理解Log4j 2.15.1-RC1:修复安全漏洞与优化实践》 在IT行业中,日志记录系统是不可或缺的一部分,它为开发者提供了追踪程序运行状态、定位错误和性能瓶颈的重要工具。Log4j,作为Apache开源组织的一个杰出...
"android-logging-log4j-1.0.3"是一个专为Android平台定制的log4j版本,它将log4j的功能集成到Android环境中,使得开发者可以享受到log4j的强大功能。这个版本号"1.0.3"表示这是该库的一个特定发行版,可能包含了...
Maven坐标:org.apache.logging.log4j:log4j-core:2.12.1; 标签:apache、logging、log4j、core、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 ...
Maven坐标:org.apache.logging.log4j:log4j-slf4j-impl:2.12.1; 标签:apache、logging、log4j、slf4j、impl、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可...
Maven坐标:org.apache.logging.log4j:log4j-api:2.12.1; 标签:apache、logging、log4j、api、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性...