docs: replace the removed XWork logging layer with Log4j2 on the Logging page (#320)

* docs: replace the removed XWork logging layer with Log4j2 on the Logging page

The page documented com.opensymphony.xwork2.util.logging.LoggerFactory,
extending LoggerFactory, and -Dxwork.loggerFactory. That layer was deprecated
in Struts 2.5 and removed in 6.0.0: org/apache/struts2 (com/opensymphony)
xwork2/util/logging has 12 files at STRUTS_2_5_33 and none from STRUTS_6_0_0
onwards, and no source in the current tags reads xwork.loggerFactory. The
examples did not compile and the system property was silently ignored.

Describe how logging actually works instead: Log4j2 via log4j-api/log4j-core,
configured with log4j2.xml, with the log4j-jcl / log4j-slf4j-impl bridges
covering third-party libraries.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* build: ignore vendor/ so bundler's default install path stays out of git

`bundle install --path vendor/bundle` — the standard way to install this
site's gems without touching the system gem dir — drops ~29 gems into
vendor/, which then shows up as untracked on every branch. .bundle and
Gemfile.lock are already ignored; vendor/ was the missing one.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2 files changed
tree: a906ad262246a33a1beeb9091753038255db2fd9
  1. .claude/
  2. docs/
  3. source/
  4. src/
  5. .asf.yaml
  6. .gitignore
  7. _config.yml
  8. CLAUDE.md
  9. docker-arm64-serve.sh
  10. docker-build.sh
  11. Dockerfile
  12. Gemfile
  13. GEMINI.md
  14. Jenkinsfile
  15. Jenkinsfile.javadocs
  16. PLACEHOLDER
  17. pom.xml
  18. README.md
README.md

Apache Struts Website

This project is used to update the main Apache Struts website http://struts.apache.org/
See the update website documentation on how to push changes online. However as ASF is using aggressive caching, for a while one still may need to forcely reload the page (CMD+R or Shift+F5) after changes.

Site is generated by Jekyll and uses pure html either markdown format. To test website locally you can use the below command:

bundle exec jekyll serve -w --trace --host 0.0.0.0

or you can use Docker (please install it first) with one of the provided scripts:

./docker-run.fish

when running fish-shell, or:

./docker-run.sh

when running Bash or Sh.

The continuously generated website can then be accessed at http://localhost:4000

All pages are generated into the content folder.

There are two scripts used to build the image but this should be used only when Dockerfile was modified.

Some redirect rules are configured in source/.htaccess file.

Preparing a new release

When announcing a new release, update the following files together:

  1. _config.yml - bump current_version / prev_version (and the matching *_short and release_date variables).
  2. source/announce-YYYY.md - add the announcement entry for the new release in the current year's file.
  3. source/releases.md - move the version that has just been superseded into the Prior Releases table so the page reflects what is no longer the recommended download.