You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by lu...@apache.org on 2026/08/11 10:35:57 UTC
(struts-site) 11/11: docs: document the Log4j2 standardization completed in Struts 7.3.0
This is an automated email from the ASF dual-hosted git repository.
lukaszlenart pushed a commit to branch docs/struts-7.3.0-content-audit
in repository https://gitbox.apache.org/repos/asf/struts-site.git
commit 5f2013e09a687dbfeb79e8728c02f7a30b159b2a
Author: Lukasz Lenart <lu...@apache.org>
AuthorDate: Tue Aug 11 12:29:51 2026 +0200
docs: document the Log4j2 standardization completed in Struts 7.3.0
WW-5620 replaced the remaining java.util.logging and SLF4J call sites
inside the framework and dropped slf4j-api from struts2-core. Verified
against the STRUTS_7_3_0 tag: the dependency is absent from core/pom.xml
(it was declared optional in 7.2.1, so consumers see no classpath change)
and STRUTS_6_11_0 still declares it.
The same change removed the container's Logger binding, so an
@Inject java.util.logging.Logger in a container-managed bean no longer
resolves -- flagged as a behaviour change.
Co-Authored-By: Claude Opus 5 <no...@anthropic.com>
---
source/core-developers/logging.md | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/source/core-developers/logging.md b/source/core-developers/logging.md
index 220f41524..944033349 100644
--- a/source/core-developers/logging.md
+++ b/source/core-developers/logging.md
@@ -24,6 +24,18 @@ setting `-Dxwork.loggerFactory` has no effect.
The Log4j2 bridges for third-party libraries (`log4j-jcl` for Commons Logging, `log4j-slf4j-impl` for SLF4J) are a
separate concern and remain available. They route logging emitted by transitive dependencies into Log4j2.
+Struts 7.3.0 finished the job: the last `java.util.logging` and SLF4J call sites inside the framework — in the
+dependency-injection container, its finalizable reference queue and the Tiles plugin's Velocity renderable — now log
+through Log4j2, and the `slf4j-api` dependency was dropped from `struts2-core`, see
+[WW-5620](https://issues.apache.org/jira/browse/WW-5620). That dependency was declared `optional`, so it was never
+propagated to applications and nothing changes on your classpath. Struts 6.11.0 still declares it.
+
+**Removed in Struts 7.3.0**: the internal DI container no longer provides a `Logger` binding. `@Inject`-ing a
+`java.util.logging.Logger` into a container-managed bean used to yield a JUL logger named after the declaring class;
+that binding was removed along with the JUL usage, so such an injection no longer resolves. Declare a Log4j2 logger
+directly instead, as shown below.
+{:.alert .alert-warning}
+
## Usage
Declare a Log4j2 logger in your own classes as usual: