Download {#download}
===
<!--
 Note: License header cannot be first, as doxygen does not generate
 cleanly if it before the '==='
-->
<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
 The ASF licenses this file to You under the Apache License, Version 2.0
 (the "License"); you may not use this file except in compliance with
 the License.  You may obtain a copy of the License at

	http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
-->
# Download Apache log4cxx ${log4cxx_VER}

  Apache log4cxx ${log4cxx_VER} is distributed under the [Apache License, version 2.0](https://www.apache.org/licenses/LICENSE-2.0.html).

  The link in the Mirrors column should display a list of available mirrors with a
  default selection based on your inferred location.  If you do not see that page,
  try a different browser.  The checksum and signature are links to
  the originals on the main distribution server.

|                         | Mirrors | Checksum | Signature |
|-------------------------|---------|----------|-----------|
| Apache log4cxx ${log4cxx_VER} (tar.gz)      | [apache-log4cxx-${log4cxx_VER}.tar.gz] | [apache-log4cxx-${log4cxx_VER}.tar.gz.sha512] | [apache-log4cxx-${log4cxx_VER}.tar.gz.asc] |
| Apache log4cxx ${log4cxx_VER} (zip)      | [apache-log4cxx-${log4cxx_VER}.zip] | [apache-log4cxx-${log4cxx_VER}.zip.sha512] | [apache-log4cxx-${log4cxx_VER}.zip.asc] |

It is essential that you verify the integrity of the downloaded files using the PGP or SHA512 signatures.
Please read [Verifying Apache HTTP Server Releases](https://httpd.apache.org/dev/verification.html) for more
information on why you should verify our releases.

The PGP signatures can be verified using PGP or GPG. First download the [KEYS](https://www.apache.org/dist/logging/KEYS)
as well as the asc signature file for the relevant distribution. Make sure you get these files from the
[main distribution directory](https://www.apache.org/dist/logging/), rather than from a mirror. Then verify the signatures using:

~~~
% gpg --import KEYS
% gpg --verify apache-log4cxx-${log4cxx_VER}.tar.gz.asc apache-log4cxx-${log4cxx_VER}.tar.gz
~~~

* apache-log4cxx-${log4cxx_VER} is signed by ${releaseManager} (${releaseKey})

Alternatively, you can verify the SHA512 signature on the files. A unix program called sha512 or sha512sum is included
in many unix distributions.

## Previous Releases

All previous releases of Apache log4cxx can be found in the [archive repository](https://archive.apache.org/dist/logging/log4cxx).

[apache-log4cxx-${log4cxx_VER}.tar.gz]:https://www.apache.org/dyn/closer.cgi/logging/log4cxx/${log4cxx_VER}/apache-log4cxx-${log4cxx_VER}.tar.gz
[apache-log4cxx-${log4cxx_VER}.tar.gz.sha512]:https://www.apache.org/dist/logging/log4cxx/${log4cxx_VER}/apache-log4cxx-${log4cxx_VER}.tar.gz.sha512
[apache-log4cxx-${log4cxx_VER}.tar.gz.asc]:https://www.apache.org/dist/logging/log4cxx/${log4cxx_VER}/apache-log4cxx-${log4cxx_VER}.tar.gz.asc
[apache-log4cxx-${log4cxx_VER}.zip]:https://www.apache.org/dyn/closer.cgi/logging/log4cxx/${log4cxx_VER}/apache-log4cxx-${log4cxx_VER}.zip
[apache-log4cxx-${log4cxx_VER}.zip.sha512]:https://www.apache.org/dist/logging/log4cxx/${log4cxx_VER}/apache-log4cxx-${log4cxx_VER}.zip.sha512
[apache-log4cxx-${log4cxx_VER}.zip.asc]:https://www.apache.org/dist/logging/log4cxx/${log4cxx_VER}/apache-log4cxx-${log4cxx_VER}.zip.asc
