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 <[email protected]> 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 <[email protected]> --- 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:
