Apache Log4cxx  Version 1.3.1
Loading...
Searching...
No Matches
Building with CMake

Supported options

Option Usage
LOG4CXX_WCHAR_T=no Enable wchar_t API methods, choice of yes (default), no.
LOG4CXX_UNICHAR=yes Enable UniChar API methods, choice of yes, no (default).
LOG4CXX_CFSTRING=yes Enable CFString API methods, requires Mac OS/X CoreFoundation, choice of yes, no (default).
BUILD_TESTING=off Do not build tests. Tests are built by default
BUILD_FUZZERS Enabled by default if BUILD_TESTING=ON and libFuzzer is found.
BUILD_SITE=OFF Set to ON to enable the project website build. Requires Doxygen.
BUILD_SHARED_LIBS=off Build Log4cxx as a static library. A dynamically linked Log4cxx library is built by default. Any compilation unit that includes a Log4cxx header must define LOG4CXX_STATIC.
APU_STATIC=yes Link to the APR-Util static library. By default, the Log4cxx shared library is linked to the APR-Util shared library. If BUILD_SHARED_LIBS=off, the static APR-Util library is used.
APR_STATIC=yes Link to the APR static library. By default, the Log4cxx shared library is linked to the APR shared library. If BUILD_SHARED_LIBS=off, the static APR library is always used.
LOG4CXX_TEST_PROGRAM_PATH=path An extra path to prepend to the PATH for test programs. Log4cxx requires zip, sed, and grep on the PATH in order for the tests to work properly.
PREFER_BOOST=on Prefer the Boost version of dependent libraries over standard library
LOG4CXX_QT_SUPPORT=ON Enable QString API and log4cxx::qt namespace methods, requires QtCore, choice of ON, OFF (default).
LOG4CXX_EVENTS_AT_EXIT=ON Prevent static data cleanup to allow event logging during application exit.
LOG4CXX_FORMAT_NAMESPACE=std Make the LOG4CXX_[level]_FMT macros use std::format by default.

Examples

Unix type systems

Make sure cmake (3.13+), g++, gzip, zip and make are available. On a Debian system these may be installed by:

$ sudo apt-get install build-essential cmake gzip zip
  1. Using the distro provided APR libraries and the cmake cursors UI to configure Log4cxx options.
    $ apt-get install libapr1-dev libaprutil1-dev
    $ wget https://downloads.apache.org/logging//log4cxx/1.3.1/apache-log4cxx-1.3.1.tar.gz
    $ tar xf apache-log4cxx-1.3.1.tar.gz
    $ cd apache-log4cxx-1.3.1
    $ mkdir build
    $ cd build
    $ ccmake ..
    $ make
    $ sudo make install
  2. Install libraries locally in $HOME/libraries and statically bind APR into the Log4cxx DSO.
    $ wget https://archive.apache.org/dist/apr/apr-1.7.5.tar.bz2
    $ tar xf apr-1.7.5.tar.bz2
    $ cd apr-1.7.5
    $ CFLAGS=-fPIC ./configure --prefix=$HOME/libraries
    $ make install
    $ cd $HOME
    $ wget https://archive.apache.org/dist/apr/apr-util-1.6.3.tar.bz2
    $ tar xf apr-util-1.6.3.tar.bz2
    $ cd apr-util-1.6.3
    $ CFLAGS=-fPIC ./configure --with-apr=$HOME/libraries --prefix=$HOME/libraries
    $ make install
    $ cd $HOME
    $ wget https://downloads.apache.org/logging//log4cxx/1.3.1/apache-log4cxx-1.3.1.tar.gz
    $ tar xf apache-log4cxx-1.3.1.tar.gz
    $ cmake -S apache-log4cxx-1.3.1 -B build/log4cxx -DAPR_STATIC=yes -DAPU_STATIC=yes -DCMAKE_PREFIX_PATH=$HOME/libraries -DCMAKE_INSTALL_PREFIX=$HOME/Libraries -DCMAKE_BUILD_TYPE=Release
    $ cmake --build build/log4cxx --target install

Windows

  1. The easiest way to get dependencies installed is to use vcpkg.

    Use these commands to build and install Log4cxx.

    > cd "%HOMEPATH%/Libraries"
    > git clone https://github.com/Microsoft/vcpkg.git
    > cd vcpkg
    > .\bootstrap-vcpkg.bat
    > vcpkg install log4cxx

    To link to Log4cxx to your application, add "-DCMAKE_TOOLCHAIN_FILE=%HOMEPATH%/Libraries/vcpkg/scripts/buildsystems/vcpkg.cmake" to your cmake command line arguments.

  2. Build from source in %HOMEPATH%/Libraries.

    Use your browser to download Windows source:

    Extract the source code into directories in %HOMEPATH%/Libraries named:

    • expat-2.6.4
    • apr-1.7.5
    • apr-util-1.6.3
    • apache-log4cxx-1.3.1.

    Use these commands to build and install dependencies.

    > cd "%HOMEPATH%/Libraries"
    > cmake -S expat-2.6.4 -B buildtrees/expat "-DCMAKE_INSTALL_PREFIX=%HOMEPATH%/Libraries/installed"
    > cmake --build buildtrees/expat --target install --config Release
    > cmake -S apr-1.7.5 -B buildtrees/apr "-DCMAKE_INSTALL_PREFIX=%HOMEPATH%/Libraries/installed"
    > cmake --build buildtrees/apr --target install --config Release
    > set "CMAKE_PREFIX_PATH=%HOMEPATH%/Libraries/installed"
    > cmake -S apr-util-1.6.3 -B buildtrees/apr-util "-DCMAKE_INSTALL_PREFIX=%HOMEPATH%/Libraries/installed"
    > cmake --build buildtrees/apr-util --target install --config Release

    Use these commands to build and install Log4cxx.

    > cd "%HOMEPATH%/Libraries"
    > cmake -S apache-log4cxx-1.3.1 -B buildtrees/log4cxx "-DCMAKE_INSTALL_PREFIX=%HOMEPATH%/Libraries/installed" -DBUILD_TESTING=off
    > cmake --build buildtrees/log4cxx --target install --config Release
  3. Build and run unit tests in %HOMEPATH%/Libraries. The location of command-line utilities must be provided to the Log4cxx cmake build in the LOG4CXX_TEST_PROGRAM_PATH cmake variable. Command-line utilities (zip, grep, sed) are available in Msys2 which can be downloaded from: https://www.msys2.org/ and by default will be installed under C:/msys64/usr/bin.

    Build and install dependencies using the above commands, then use these commands to build Log4cxx and run Log4cxx unit tests.

    > cd "%HOMEPATH%/Libraries"
    > cmake -S apache-log4cxx-1.3.1 -B buildtrees/log4cxx "-DCMAKE_INSTALL_PREFIX=%HOMEPATH%/Libraries/installed" "-DLOG4CXX_TEST_PROGRAM_PATH=C:/msys64/usr/bin"
    > cmake --build buildtrees/log4cxx --config Debug
    > cd buildtrees/log4cxx
    > ctest -C Debug --output-on-failure

Mac OS/X

APR and APR-Util are provided by the platform in Mac OS/X 10.5 and iODBC in 10.4.

cmake can be installed by typing "brew install cmake".

CMake can be built from source by typing:

$ wget https://github.com/Kitware/CMake/releases/download/v3.27.2/cmake-3.27.2.tar.gz
$ tar xf cmake-3.27.2.tar.gz
$ cd cmake-3.27.2
$ ./bootstrap
$ make
$ sudo make install

FreeBSD

APR, APR-Util, gzip and zip may be installed from the ports collection by:

$ cd /usr/ports/archivers/zip
$ make
$ make install
$ cd /usr/ports/archivers/gzip
$ make
$ make install
$ cd /usr/ports/devel/apr
$ make
$ make install